diff --git a/.env b/.env index b1063a6d3..c08a7b9b2 100644 --- a/.env +++ b/.env @@ -1,6 +1,9 @@ -DB_NAME=squid DB_USER=postgres -DB_PASSWORD=postgres-indexer +DB_PASSWORD=postgres DB_PORT=5432 +DB_CONSENSUS=consensus +DB_LEADERBOARD=leaderboard +DB_STAKING=staking + HASURA_GRAPHQL_ADMIN_SECRET=helloworld \ No newline at end of file diff --git a/.github/workflows/gh-account-image.yml b/.github/workflows/gh-account-image.yml deleted file mode 100644 index c0df608cd..000000000 --- a/.github/workflows/gh-account-image.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Update rewards container image - -on: - push: - branches: - - production - - main - -env: - PROCESSOR_NAME: ghcr.io/${{ github.repository_owner }}/blockexplorer-account:latest - -jobs: - push: - runs-on: ubuntu-latest - permissions: - packages: write - contents: read - - steps: - - uses: actions/checkout@v3 - - - name: Log into registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ github.token }} - - - name: Build processor image - run: docker build . --target processor -t squid-processor --tag $PROCESSOR_NAME - working-directory: indexers/account-squid - - - name: Push processor image - run: docker push $PROCESSOR_NAME diff --git a/.github/workflows/gh-deploy-micro-squids.yml b/.github/workflows/gh-deploy-micro-squids.yml deleted file mode 100644 index f243a7807..000000000 --- a/.github/workflows/gh-deploy-micro-squids.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: Deploy Docker Compose for Micro Squids on main - -on: - push: - branches: - - production - paths: - - "indexers/general-squid/**" - - "indexers/rewards-squid/**" - - "indexers/accounts-squid/**" - -env: - DOCKER_HOST: ssh://${{ secrets.SSH_USER }}@${{ secrets.SQUID_HOST }} - DEPLOY_PATH: /home/ubuntu/squids/astral - BRANCH_NAME: ${{ github.ref == 'refs/heads/main' && 'main' || github.ref }} - -jobs: - deploy: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Set Hasura secret - id: set_secret - run: echo "hasura_secret=${{ secrets.HASURA_GRAPHQL_ADMIN_SECRET }}" >> $GITHUB_OUTPUT - - - name: Install SSH key - uses: webfactory/ssh-agent@dc588b651fe13675774614f8e6a936a468676387 # v0.9.0 - with: - ssh-private-key: ${{ secrets.SERVER_SSH_PRIVATE_KEY }} - - - name: Add SSH host key fingerprint - run: | - ssh-keyscan -H ${{ secrets.SQUID_HOST }} >> ~/.ssh/known_hosts - - - name: Deploy with Docker Compose - env: - SSH_USER: ${{ secrets.SSH_USER }} - run: | - mkdir -p ~/.ssh - ssh-keyscan -H ${{ secrets.SQUID_HOST }} >> ~/.ssh/known_hosts - ssh ${SSH_USER}@${{ secrets.SQUID_HOST }} " - - if [ ! -d ${DEPLOY_PATH} ]; then - git clone https://github.com/autonomys/astral.git ${DEPLOY_PATH} - else - cd ${DEPLOY_PATH} - git pull - fi - git checkout ${BRANCH_NAME} - - # Securely update the .env file - if [ ! -f .env ]; then - echo 'HASURA_GRAPHQL_ADMIN_SECRET=${{ steps.set_secret.outputs.hasura_secret }}' > .env - else - sed -i '/^HASURA_GRAPHQL_ADMIN_SECRET=/d' .env - echo 'HASURA_GRAPHQL_ADMIN_SECRET=${{ steps.set_secret.outputs.hasura_secret }}' >> .env - fi - - docker-compose -f docker-compose-all-squids.yml pull - docker-compose -f docker-compose-all-squids.yml up -d - " - - - name: Notify on failure - if: failure() - env: - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,action,eventName,ref,workflow,job - author_name: Deployment failed - mention: here - if_mention: failure,cancelled - job_name: Deploy Docker Compose for Micro Squids on staging - channel: alerts - icon_emoji: ":github:" diff --git a/.github/workflows/gh-general-squid-image.yml b/.github/workflows/gh-general-squid-image.yml deleted file mode 100644 index 7a7cf262c..000000000 --- a/.github/workflows/gh-general-squid-image.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Update rewards container image - -on: - push: - branches: - - production - - main - -env: - PROCESSOR_NAME: ghcr.io/${{ github.repository_owner }}/blockexplorer-general:latest - -jobs: - push: - runs-on: ubuntu-latest - permissions: - packages: write - contents: read - - steps: - - uses: actions/checkout@v3 - - - name: Log into registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ github.token }} - - - name: Build processor image - run: docker build . --target processor -t squid-processor --tag $PROCESSOR_NAME - working-directory: indexers/general-squid - - - name: Push processor image - run: docker push $PROCESSOR_NAME diff --git a/.github/workflows/gh-rewards-image.yml b/.github/workflows/gh-rewards-image.yml deleted file mode 100644 index 68a6b2533..000000000 --- a/.github/workflows/gh-rewards-image.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Update rewards container image - -on: - push: - branches: - - production - - main - -env: - PROCESSOR_NAME: ghcr.io/${{ github.repository_owner }}/blockexplorer-rewards:latest - -jobs: - push: - runs-on: ubuntu-latest - permissions: - packages: write - contents: read - - steps: - - uses: actions/checkout@v3 - - - name: Log into registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ github.token }} - - - name: Build processor image - run: docker build . --target processor -t squid-processor --tag $PROCESSOR_NAME - working-directory: indexers/rewards-squid - - - name: Push processor image - run: docker push $PROCESSOR_NAME diff --git a/.gitignore b/.gitignore index 084196e7a..cfe6bc09b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,7 @@ DS_Store -*/DS_Store \ No newline at end of file +*/DS_Store + +node_modules + +# local env files +.env \ No newline at end of file diff --git a/.vscode/astral.code-workspace b/.vscode/astral.code-workspace index 913531e3f..cba188d11 100644 --- a/.vscode/astral.code-workspace +++ b/.vscode/astral.code-workspace @@ -2,46 +2,42 @@ "folders": [ { "name": "root", - "path": ".." + "path": "..", }, { "name": "explorer", - "path": "../explorer" + "path": "../explorer", }, { "name": "health-check", - "path": "../health-check" + "path": "../health-check", }, { "name": "indexers", - "path": "../indexers" + "path": "../indexers", }, { - "name": "indexer - General Squid", - "path": "../indexers/general-squid" + "name": "indexer - Consensus Squid", + "path": "../indexers/consensus-squid", }, { - "name": "indexer - Account Squid", - "path": "../indexers/account-squid" - }, - { - "name": "indexer - Staking Squid", - "path": "../indexers/staking-squid" + "name": "indexer - Accounts Squid", + "path": "../indexers/accounts-squid", }, { "name": "indexer - Leaderboard Squid", - "path": "../indexers/leaderboard-squid" + "path": "../indexers/leaderboard-squid", }, { - "name": "indexer - Rewards Squid", - "path": "../indexers/rewards-squid" - } + "name": "indexer - Staking Squid", + "path": "../indexers/staking-squid", + }, ], "settings": { "editor.codeActionsOnSave": { "source.sortImports": "explicit", "source.fixAll.eslint": "explicit", - "source.fixAll.tslint": "explicit" + "source.fixAll.tslint": "explicit", }, "editor.defaultFormatter": "esbenp.prettier-vscode", "javascript.updateImportsOnFileMove.enabled": "always", @@ -56,12 +52,14 @@ "extrinsics", "gemini", "graphiql", + "hasura", + "deregister", "leaderboard", "siwe", "subscan", "subspace", "subsquid", - "typegen" - ] - } + "typegen", + ], + }, } diff --git a/.vscode/settings.json b/.vscode/settings.json index 7486204a8..d363d49cf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,6 +17,8 @@ "extrinsics", "gemini", "graphiql", + "hasura", + "deregister", "leaderboard", "siwe", "subscan", diff --git a/docker-compose-all-squids.yml b/docker-compose-all-squids.yml deleted file mode 100644 index 01e50b6b1..000000000 --- a/docker-compose-all-squids.yml +++ /dev/null @@ -1,117 +0,0 @@ -services: - # General Squid - general-db: - image: postgres:15 - environment: - POSTGRES_DB: general-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "5432:5432" - volumes: - - ./data/general-db:/var/lib/postgresql/data - - general-api: - image: ghcr.io/autonomys/blockexplorer-general:latest - environment: - - DB_NAME=general-squid - - DB_PORT=5432 - - DB_HOST=general-db - - DB_PASS=postgres - - GQL_PORT=4350 - ports: - - "4350:4350" - command: ["sqd", "serve:prod"] - depends_on: - - general-db - - general-processor: - image: ghcr.io/autonomys/blockexplorer-general:latest - environment: - - DB_NAME=general-squid - - DB_PORT=5432 - - DB_HOST=general-db - - DB_PASS=postgres - ports: - - "3000:3000" - command: ["sqd", "process:prod"] - depends_on: - - general-db - - # Rewards Squid - rewards-db: - image: postgres:15 - environment: - POSTGRES_DB: rewards-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "5433:5432" - volumes: - - ./data/rewards-db:/var/lib/postgresql/data - - rewards-api: - image: ghcr.io/autonomys/blockexplorer-rewards:latest - environment: - - DB_NAME=rewards-squid - - DB_PORT=5433 - - DB_HOST=rewards-db - - DB_PASS=postgres - - GQL_PORT=4351 - ports: - - "4351:4351" - command: ["sqd", "serve:prod"] - depends_on: - - rewards-db - - rewards-processor: - image: ghcr.io/autonomys/blockexplorer-rewards:latest - environment: - - DB_NAME=rewards-squid - - DB_PORT=5433 - - DB_HOST=rewards-db - - DB_PASS=postgres - ports: - - "3001:3000" - command: ["sqd", "process:prod"] - depends_on: - - rewards-db - - # Account Squid - account-db: - image: postgres:15 - environment: - POSTGRES_DB: account-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "5434:5432" - volumes: - - ./data/account-db:/var/lib/postgresql/data - - account-api: - image: ghcr.io/autonomys/blockexplorer-account:latest - environment: - - DB_NAME=account-squid - - DB_PORT=5434 - - DB_HOST=account-db - - DB_PASS=postgres - - GQL_PORT=4352 - ports: - - "4352:4352" - command: ["sqd", "serve:prod"] - depends_on: - - account-db - - account-processor: - image: ghcr.io/autonomys/blockexplorer-account:latest - environment: - - DB_NAME=account-squid - - DB_PORT=5434 - - DB_HOST=account-db - - DB_PASS=postgres - ports: - - "3002:3000" - command: ["sqd", "process:prod"] - depends_on: - - account-db diff --git a/docker-compose.yml b/docker-compose.yml index 15d002fff..709a50e63 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,11 +5,11 @@ services: container_name: explorer-db image: postgres:14 environment: - POSTGRES_DB: ${DB_NAME} - POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} ports: - "${DB_PORT}:${DB_PORT}" + volumes: + - ./indexers/db/docker-entrypoint-initdb.d/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql graphql-engine: container_name: explorer-graphql @@ -18,8 +18,11 @@ services: - "db" restart: always environment: - HASURA_GRAPHQL_METADATA_DATABASE_URL: postgres://${DB_USER}:${DB_PASSWORD}@db:${DB_PORT}/${DB_NAME} - HASURA_GRAPHQL_ENABLE_CONSOLE: "true" + HASURA_GRAPHQL_METADATA_DATABASE_URL: postgres://${DB_USER}:${DB_PASSWORD}@db:${DB_PORT}/${DB_CONSENSUS} + HASURA_GRAPHQL_CONSENSUS_DATABASE_URL: postgres://${DB_USER}:${DB_PASSWORD}@db:${DB_PORT}/${DB_CONSENSUS} + HASURA_GRAPHQL_LEADERBOARD_DATABASE_URL: postgres://${DB_USER}:${DB_PASSWORD}@db:${DB_PORT}/${DB_LEADERBOARD} + HASURA_GRAPHQL_STAKING_DATABASE_URL: postgres://${DB_USER}:${DB_PASSWORD}@db:${DB_PORT}/${DB_STAKING} + HASURA_GRAPHQL_ENABLE_CONSOLE: "false" HASURA_GRAPHQL_DEV_MODE: "true" # HASURA_GRAPHQL_CONSOLE_ASSETS_DIR: /srv/console-assets HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET} @@ -29,4 +32,4 @@ services: - "8080:8080" command: - graphql-engine - - serve \ No newline at end of file + - serve diff --git a/explorer/package.json b/explorer/package.json index a755e21c0..73c0153b1 100644 --- a/explorer/package.json +++ b/explorer/package.json @@ -3,6 +3,17 @@ "version": "1.0.0", "main": "index.js", "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/autonomys/astral" + }, + "author": { + "name": "Autonomys", + "url": "https://www.autonomys.xyz" + }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, "scripts": { "dev": "next dev", "build": "next build", diff --git a/indexers/README.md b/indexers/README.md index 79d23b5bd..feabe235c 100644 --- a/indexers/README.md +++ b/indexers/README.md @@ -6,9 +6,9 @@ This directory contains various Subsquid indexers used within the Astral project ## Indexers Overview -- `general-squid`: Handles general data indexing across the blockchain. -- `account-squid`: Manages indexing of account-related data. -- `rewards-squid`: Specializes in indexing and processing reward distributions. +- `consensus-squid`: Responsible for indexing consensus-related data across the blockchain. +- `leaderboard-squid`: Handles the indexing of leaderboard and account-related data. +- `staking-squid`: Focuses on indexing and managing staking-related data. - `squid-blockexplorer`: Utilized for the Astral Block Explorer to index and transform blockchain data for visual representation. (old) ## Installation and Setup @@ -20,8 +20,15 @@ Each indexer has its own set of dependencies and setup instructions. Navigate to To contribute to an indexer or modify its behavior: 1. Clone the repository if you haven't done so already. -2. Navigate to the specific indexer directory you want to modify. -3. Make your changes and ensure they meet the project standards. +2. Open Docker Desktop +3. Run `docker compose up` from root directory +4. Navigate to the specific indexer directory you want to modify. +5. Make your changes and ensure they meet the project standards. +6. Run `sqd codegen` +7. Run `sqd migration:generate` +8. Run `sqd process` + +To get Hasura console running, run `yarn start` from db/ directory ## Testing diff --git a/indexers/account-squid/.dockerignore b/indexers/account-squid/.dockerignore deleted file mode 100644 index 27c983bc0..000000000 --- a/indexers/account-squid/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -/.git -/node_modules -/lib -/*Versions.jsonl diff --git a/indexers/account-squid/.env.local b/indexers/account-squid/.env.local deleted file mode 100644 index 8c457e57a..000000000 --- a/indexers/account-squid/.env.local +++ /dev/null @@ -1,4 +0,0 @@ -DB_NAME=account-squid -RPC_ENDPOINT=wss://rpc-0.gemini-3h.subspace.network/ws -GQL_PORT=4452 -DB_PORT=5435 diff --git a/indexers/account-squid/.env.sample b/indexers/account-squid/.env.sample deleted file mode 100644 index 347e99fbf..000000000 --- a/indexers/account-squid/.env.sample +++ /dev/null @@ -1,4 +0,0 @@ -DB_NAME=account-squid -RPC_ENDPOINT=wss://rpc-0.gemini-3h.subspace.network/ws -GQL_PORT=4450 -DB_PORT=5433 diff --git a/indexers/account-squid/.github/ISSUE_TEMPLATE/bug_report.md b/indexers/account-squid/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index bf3db9c69..000000000 --- a/indexers/account-squid/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,45 +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. - -**Environment (please complete the following information):** - - specify the version of the core packages (@subsquid/cli, @subsquid/substrate-processor, ...) - - node.js version - - npm version - - OS version - - Reproducible example or a repo link - -**Applicable to decoding issues:** - - chain name - - typesBundle (if it's not built-in) -optional: - - block - - extrinsic - - call - - event - - spec version - - endpoint - -**Additional context** -Add any other context about the problem here. diff --git a/indexers/account-squid/Dockerfile b/indexers/account-squid/Dockerfile deleted file mode 100644 index 2616ea0a4..000000000 --- a/indexers/account-squid/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -FROM node:20-alpine AS node -FROM node AS node-with-gyp -RUN apk add g++ make python3 -FROM node-with-gyp AS builder -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -ADD assets assets -ADD db db -ADD schema.graphql . -RUN npm ci -ADD tsconfig.json . -ADD src src -RUN npm run build -FROM node-with-gyp AS deps -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -RUN npm install -g npm@10.5.2 && npm ci --production - -FROM node AS squid -WORKDIR /squid -COPY --from=deps /squid/package.json . -COPY --from=deps /squid/package-lock.json . -COPY --from=deps /squid/node_modules node_modules -COPY --from=builder /squid/lib lib -COPY --from=builder /squid/assets assets -COPY --from=builder /squid/db db -COPY --from=builder /squid/schema.graphql schema.graphql -ADD commands.json . -RUN echo -e "loglevel=silent\\nupdate-notifier=false" > /squid/.npmrc -RUN npm i -g @subsquid/commands && mv $(which squid-commands) /usr/local/bin/sqd -EXPOSE 3000 -EXPOSE 4350 -ENV PROCESSOR_PROMETHEUS_PORT 3000 - -FROM squid AS processor -CMD ["sqd", "process:prod"] diff --git a/indexers/account-squid/README.md b/indexers/account-squid/README.md deleted file mode 100644 index 220c8d4e9..000000000 --- a/indexers/account-squid/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# Account-Squid Indexer - -The Account-Squid indexer is designed for efficient tracking and querying of account-related data on the Astral blockchain. This tool enhances the accessibility and utility of account data for various applications. - -## Overview - -- Focuses on indexing transactions and balances associated with blockchain accounts. -- Provides data access through a GraphQL API, facilitating easy integration with frontend applications. - -## Getting Started - -To work with the Account-Squid indexer: - -1. Ensure that Node.js (version 16.x or higher) and Docker are installed on your system. -2. Clone the repository and navigate to the `account-squid` directory. -3. Install necessary dependencies and initiate the services required for indexing and querying. - -## Development Guidelines - -- Adhere to established coding standards and best practices within the project. -- Conduct thorough testing for new features or bug fixes. -- Maintain clear and concise documentation for any major modifications or additions to the codebase. - -## Useful Links - -- [Subsquid Documentation](https://docs.subsquid.io) - For general guidelines on working with Squid indexers. -- [Deployment Guide](https://docs.subsquid.io/deploy-squid/) - For details on deploying and managing indexers. - -## License - -This indexer operates under the MIT License, as does the broader Astral project. diff --git a/indexers/account-squid/assets/README.MD b/indexers/account-squid/assets/README.MD deleted file mode 100644 index 23a55abb7..000000000 --- a/indexers/account-squid/assets/README.MD +++ /dev/null @@ -1,3 +0,0 @@ -# Assets - -`assets` is the designated folder for any additional files to be used by the squid, for example a static data file. The folder is added by default to `Dockerfile` and is kept when the squid is deployed to the Aquairum. \ No newline at end of file diff --git a/indexers/account-squid/db/migrations/1711387049803-Data.js b/indexers/account-squid/db/migrations/1711387049803-Data.js deleted file mode 100644 index cd2ac4617..000000000 --- a/indexers/account-squid/db/migrations/1711387049803-Data.js +++ /dev/null @@ -1,33 +0,0 @@ -module.exports = class Data1711387049803 { - name = 'Data1711387049803' - - async up(db) { - await db.query(`CREATE TABLE "transfer" ("id" character varying NOT NULL, "block_number" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "extrinsic_hash" text, "amount" numeric NOT NULL, "fee" numeric NOT NULL, "from_id" character varying, "to_id" character varying, CONSTRAINT "PK_fd9ddbdd49a17afcbe014401295" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_d6624eacc30144ea97915fe846" ON "transfer" ("block_number") `) - await db.query(`CREATE INDEX "IDX_70ff8b624c3118ac3a4862d22c" ON "transfer" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_070c555a86b0b41a534a55a659" ON "transfer" ("extrinsic_hash") `) - await db.query(`CREATE INDEX "IDX_76bdfed1a7eb27c6d8ecbb7349" ON "transfer" ("from_id") `) - await db.query(`CREATE INDEX "IDX_0751309c66e97eac9ef1149362" ON "transfer" ("to_id") `) - await db.query(`CREATE INDEX "IDX_f4007436c1b546ede08a4fd7ab" ON "transfer" ("amount") `) - await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, "free" numeric NOT NULL, "reserved" numeric NOT NULL, "total" numeric NOT NULL, "updated_at_block" integer NOT NULL, "nonce" integer NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_3e9dfd81b129caa0b9d3b8f4ab" ON "account" ("updated_at_block") `) - await db.query(`CREATE TABLE "backup_counter" ("id" character varying NOT NULL, "balances_transfers_volume" numeric NOT NULL, "balances_transfers_amount" numeric NOT NULL, "chain_signed_extrinsics" numeric NOT NULL, CONSTRAINT "PK_68cff71a7e23d9d07fe40a39e4e" PRIMARY KEY ("id"))`) - await db.query(`ALTER TABLE "transfer" ADD CONSTRAINT "FK_76bdfed1a7eb27c6d8ecbb73496" FOREIGN KEY ("from_id") REFERENCES "account"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "transfer" ADD CONSTRAINT "FK_0751309c66e97eac9ef11493623" FOREIGN KEY ("to_id") REFERENCES "account"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - } - - async down(db) { - await db.query(`DROP TABLE "transfer"`) - await db.query(`DROP INDEX "public"."IDX_d6624eacc30144ea97915fe846"`) - await db.query(`DROP INDEX "public"."IDX_70ff8b624c3118ac3a4862d22c"`) - await db.query(`DROP INDEX "public"."IDX_070c555a86b0b41a534a55a659"`) - await db.query(`DROP INDEX "public"."IDX_76bdfed1a7eb27c6d8ecbb7349"`) - await db.query(`DROP INDEX "public"."IDX_0751309c66e97eac9ef1149362"`) - await db.query(`DROP INDEX "public"."IDX_f4007436c1b546ede08a4fd7ab"`) - await db.query(`DROP TABLE "account"`) - await db.query(`DROP INDEX "public"."IDX_3e9dfd81b129caa0b9d3b8f4ab"`) - await db.query(`DROP TABLE "backup_counter"`) - await db.query(`ALTER TABLE "transfer" DROP CONSTRAINT "FK_76bdfed1a7eb27c6d8ecbb73496"`) - await db.query(`ALTER TABLE "transfer" DROP CONSTRAINT "FK_0751309c66e97eac9ef11493623"`) - } -} diff --git a/indexers/account-squid/docker-compose-local.yml b/indexers/account-squid/docker-compose-local.yml deleted file mode 100644 index 3fa6dbb29..000000000 --- a/indexers/account-squid/docker-compose-local.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: "3" - -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: account-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "${DB_PORT}:5432" diff --git a/indexers/account-squid/docker-compose.yml b/indexers/account-squid/docker-compose.yml deleted file mode 100644 index 61d3277d8..000000000 --- a/indexers/account-squid/docker-compose.yml +++ /dev/null @@ -1,39 +0,0 @@ -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: account-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "5432:5432" - # command: ["postgres", "-c", "log_statement=all"] - volumes: - - ./data/db:/var/lib/postgresql/data - api: - image: ghcr.io/subspace/blockexplorer-account:latest - environment: - - DB_NAME=account-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - - GQL_PORT=4350 - ports: - # GraphQL endpoint at port 4350 - - "4350:4350" - command: ["sqd", "serve:prod"] - depends_on: - - db - processor: - image: ghcr.io/subspace/blockexplorer-account:latest - environment: - - DB_NAME=account-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - ports: - # prometheus metrics exposed at port 3000 - - "3000:3000" - command: ["sqd", "process:prod"] - depends_on: - - db diff --git a/indexers/account-squid/package-lock.json b/indexers/account-squid/package-lock.json deleted file mode 100644 index b532200e8..000000000 --- a/indexers/account-squid/package-lock.json +++ /dev/null @@ -1,4587 +0,0 @@ -{ - "name": "squid", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "squid", - "dependencies": { - "@belopash/typeorm-store": "^1.3.0", - "@subsquid/archive-registry": "^3.3.0", - "@subsquid/graphql-server": "^4.5.0", - "@subsquid/ss58": "^2.0.2", - "@subsquid/substrate-processor": "^8.1.1", - "@subsquid/typeorm-migration": "^1.3.0", - "dotenv": "^16.4.4", - "pg": "8.11.3", - "typeorm": "^0.3.20" - }, - "devDependencies": { - "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/substrate-typegen": "^8.0.2", - "@subsquid/typeorm-codegen": "^1.3.3", - "@types/node": "^20.11.17", - "typescript": "^5.3.3" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@apollo/protobufjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", - "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - } - }, - "node_modules/@apollo/usage-reporting-protobuf": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz", - "integrity": "sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA==", - "dependencies": { - "@apollo/protobufjs": "1.2.7" - } - }, - "node_modules/@apollo/utils.dropunuseddefinitions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", - "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.keyvadapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvadapter/-/utils.keyvadapter-1.1.2.tgz", - "integrity": "sha512-vPC5e97uwHuZ2iMHVrEeRsV4dLw0lNx2UY9APhb7StC/RMR3BdnuPwS/+5yR9tUF5IUut+iJZocHkS4y6mR9aA==", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "dataloader": "^2.1.0", - "keyv": "^4.4.0" - } - }, - "node_modules/@apollo/utils.keyvaluecache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", - "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", - "dependencies": { - "@apollo/utils.logger": "^1.0.0", - "lru-cache": "7.10.1 - 7.13.1" - } - }, - "node_modules/@apollo/utils.logger": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", - "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==" - }, - "node_modules/@apollo/utils.printwithreducedwhitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", - "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.removealiases": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", - "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.sortast": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", - "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", - "dependencies": { - "lodash.sortby": "^4.7.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.stripsensitiveliterals": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", - "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.usagereporting": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", - "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", - "dependencies": { - "@apollo/usage-reporting-protobuf": "^4.0.0", - "@apollo/utils.dropunuseddefinitions": "^1.1.0", - "@apollo/utils.printwithreducedwhitespace": "^1.1.0", - "@apollo/utils.removealiases": "1.0.0", - "@apollo/utils.sortast": "^1.1.0", - "@apollo/utils.stripsensitiveliterals": "^1.2.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollographql/apollo-tools": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", - "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", - "engines": { - "node": ">=8", - "npm": ">=6" - }, - "peerDependencies": { - "graphql": "^14.2.1 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@apollographql/graphql-playground-html": { - "version": "1.6.29", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", - "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", - "dependencies": { - "xss": "^1.0.8" - } - }, - "node_modules/@belopash/typeorm-store": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@belopash/typeorm-store/-/typeorm-store-1.3.0.tgz", - "integrity": "sha512-OvXrZHP21tLKRK+8ysFfvlRHXFpEFz/Nj8GEzZOHn0jPzIpr15swNHVRx1xABLyG994P0H/JCR9FEu8e7z4Tag==", - "dependencies": { - "@subsquid/logger": "^1.3.3", - "@subsquid/util-internal": "^3.1.0" - }, - "peerDependencies": { - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/typeorm-store": "^1.3.0", - "pg": "^8.11.3", - "typeorm": "^0.3.16" - } - }, - "node_modules/@belopash/typeorm-store/node_modules/@subsquid/util-internal": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.1.0.tgz", - "integrity": "sha512-m1lIiy7Tc2+QR5Jcx9eGsVsB4ASR/bA5Z9gnB+qUy1BzYuz5FEiJOYCQm6J5Bt+VnYDYYyANEUMq4Cl3J5wuSg==" - }, - "node_modules/@exodus/schemasafe": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", - "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", - "dev": true - }, - "node_modules/@graphql-tools/merge": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz", - "integrity": "sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw==", - "dependencies": { - "@graphql-tools/utils": "^10.0.10", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock": { - "version": "8.7.20", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz", - "integrity": "sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==", - "dependencies": { - "@graphql-tools/schema": "^9.0.18", - "@graphql-tools/utils": "^9.2.1", - "fast-json-stable-stringify": "^2.1.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/merge": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz", - "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/schema": { - "version": "9.0.19", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", - "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", - "dependencies": { - "@graphql-tools/merge": "^8.4.1", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/schema": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz", - "integrity": "sha512-TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w==", - "dependencies": { - "@graphql-tools/merge": "^9.0.1", - "@graphql-tools/utils": "^10.0.10", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/utils": { - "version": "10.0.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.13.tgz", - "integrity": "sha512-fMILwGr5Dm2zefNItjQ6C2rauigklv69LIwppccICuGTnGaOp3DspLt/6Lxj72cbg5d9z60Sr+Egco3CJKLsNg==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "cross-inspect": "1.0.0", - "dset": "^3.1.2", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@ioredis/commands": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" - }, - "node_modules/@keyv/redis": { - "version": "2.5.8", - "resolved": "https://registry.npmjs.org/@keyv/redis/-/redis-2.5.8.tgz", - "integrity": "sha512-WweuUZqZN2ETcseV6r1AEum1qG6eR5poNhkZ4CIpWBOjMasT2ArTKWyIPxxYllKUS2A8wKv1l8+AqH6Jpzk7Ug==", - "dependencies": { - "ioredis": "^5.3.2" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@sqltools/formatter": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", - "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==" - }, - "node_modules/@subsquid/archive-registry": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/archive-registry/-/archive-registry-3.3.0.tgz", - "integrity": "sha512-moXnGNOSmKMHyuDvUiOHbpL7IePSo4XZOW9OnzESIND64eGxlKusIsCi8Nth1DgzbE/UTTFeNJvYKu0v7SOIqw==", - "dependencies": { - "@subsquid/util-internal": "^1.0.0", - "commander": "^10.0.0", - "easy-table": "^1.2.0", - "sync-fetch": "^0.5.2" - }, - "bin": { - "squid-archive-registry": "bin/run.js" - } - }, - "node_modules/@subsquid/graphiql-console": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/graphiql-console/-/graphiql-console-0.3.0.tgz", - "integrity": "sha512-C89mus6IXnNi0xMQrZqUFBZwLj8tbuq9lye8Gq/lHmmERAUpi6UsWEyLdJLx2mneZzF3JtY8eNiiZ16jmjtvfw==" - }, - "node_modules/@subsquid/graphql-server": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-4.5.0.tgz", - "integrity": "sha512-SKCq6qF8FGrsrzFpjLzyDf3Cbcp4e8Z2M+t6Er3en7WLY3jZtdEGf3HbfCH6ukhQoJ72lUSNsESdwEoazOslRA==", - "dependencies": { - "@apollo/utils.keyvadapter": "~1.1.2", - "@apollo/utils.keyvaluecache": "~1.0.2", - "@graphql-tools/merge": "^9.0.1", - "@graphql-tools/schema": "^10.0.2", - "@graphql-tools/utils": "^10.0.11", - "@keyv/redis": "~2.5.8", - "@subsquid/logger": "^1.3.2", - "@subsquid/openreader": "^4.5.0", - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-commander": "^1.3.2", - "@subsquid/util-internal-http-server": "^1.2.2", - "@subsquid/util-internal-ts-node": "^0.0.0", - "apollo-server-core": "^3.13.0", - "apollo-server-express": "^3.13.0", - "apollo-server-plugin-response-cache": "~3.7.1", - "commander": "^11.1.0", - "dotenv": "^16.3.1", - "express": "^4.18.2", - "graphql": "^15.8.0", - "graphql-ws": "^5.14.2", - "keyv": "~4.5.4", - "pg": "^8.11.3", - "ws": "^8.14.2" - }, - "bin": { - "squid-graphql-server": "bin/run.js" - }, - "peerDependencies": { - "@subsquid/big-decimal": "^1.0.0", - "class-validator": "^0.14.0", - "type-graphql": "^1.2.0-rc.1", - "typeorm": "^0.3.17" - }, - "peerDependenciesMeta": { - "@subsquid/big-decimal": { - "optional": true - }, - "class-validator": { - "optional": true - }, - "type-graphql": { - "optional": true - }, - "typeorm": { - "optional": true - } - } - }, - "node_modules/@subsquid/graphql-server/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/graphql-server/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/graphql-server/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/http-client": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/http-client/-/http-client-1.3.2.tgz", - "integrity": "sha512-N9fXB2TCYzzT4CNoTibpgk4lMFNU463/ZQcSstPPMIpZA9QdDjY+mNdjLTi8L+4DzimgjEbwYfLQX5aINYvkMA==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "node-fetch": "^3.3.2" - } - }, - "node_modules/@subsquid/http-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/logger": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@subsquid/logger/-/logger-1.3.3.tgz", - "integrity": "sha512-BdoRVIOrIRzKdMZPoJxzJzPLulf5Q09GeLtJn0whP+rhDV5nQ4ANDAzjPg9jmgH9WkMYAr2XH4lny/4PjhQUNA==", - "dependencies": { - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-json": "^1.2.2", - "supports-color": "^8.1.1" - } - }, - "node_modules/@subsquid/openreader": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-4.5.0.tgz", - "integrity": "sha512-A07K1TM0YY2iZjJcY2qD0jXco1S7D00OfqAnN4tqxVtj4ddLJVZ3bLIAHn7r3P3JB4iT+3daBNTTa17vH1k2XA==", - "dependencies": { - "@graphql-tools/merge": "^9.0.1", - "@subsquid/graphiql-console": "^0.3.0", - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-commander": "^1.3.2", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-http-server": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "apollo-server-core": "^3.13.0", - "apollo-server-express": "^3.13.0", - "commander": "^11.1.0", - "deep-equal": "^2.2.3", - "express": "^4.18.2", - "graphql": "^15.8.0", - "graphql-parse-resolve-info": "^4.14.0", - "graphql-ws": "^5.14.2", - "pg": "^8.11.3", - "ws": "^8.14.2" - }, - "bin": { - "openreader": "bin/main.js" - }, - "peerDependencies": { - "@subsquid/big-decimal": "^1.0.0" - }, - "peerDependenciesMeta": { - "@subsquid/big-decimal": { - "optional": true - } - } - }, - "node_modules/@subsquid/openreader/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/openreader/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/openreader/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/rpc-client": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@subsquid/rpc-client/-/rpc-client-4.6.0.tgz", - "integrity": "sha512-fVTsVOag6Ge7hRqV+st9p+E+BgQa5PPu1uJns5IXSrRtIuAuy++w0OsB3WNA+EC8DZarpllxi7I3snzJpis/xQ==", - "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-binary-heap": "^1.0.0", - "@subsquid/util-internal-counters": "^1.3.2", - "websocket": "^1.0.34" - } - }, - "node_modules/@subsquid/rpc-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/scale-codec": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/scale-codec/-/scale-codec-4.0.1.tgz", - "integrity": "sha512-H3mi5GIvlrvOSJVSYQRNnaiulSDktPF4TwUvquAgN86tN4kokyX8XcEM2Htrm1sVWRtMi7SgYpyVR5Yg5iPKUQ==", - "dependencies": { - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-json": "^1.2.2" - } - }, - "node_modules/@subsquid/scale-type-system": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/scale-type-system/-/scale-type-system-1.0.2.tgz", - "integrity": "sha512-bZSUGO/Hfnf/+luZ8lWEsGqr9iIiQeaifmXEiOGBpr5Ace6H+pPY3lFmDTPWigoqt7VxrhRO0jvk5RLAyeBJvg==", - "peer": true, - "dependencies": { - "@subsquid/util-internal": "^3.0.0" - }, - "peerDependencies": { - "@subsquid/scale-codec": "^4.0.1" - } - }, - "node_modules/@subsquid/scale-type-system/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "peer": true - }, - "node_modules/@subsquid/ss58": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/ss58/-/ss58-2.0.2.tgz", - "integrity": "sha512-2chHMJ7jXvZzYQiXiA5MYYAVBobPcnQxWt3/jsiiZT6vWorjlVElXoQjZ0G/FKRHCcJ4GD10zDd8sG+7sPp2fw==", - "dependencies": { - "@subsquid/ss58-codec": "^1.2.3", - "@subsquid/util-internal-hex": "^1.2.2" - } - }, - "node_modules/@subsquid/ss58-codec": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@subsquid/ss58-codec/-/ss58-codec-1.2.3.tgz", - "integrity": "sha512-PFWGOYDVEa1F+u5NoH4pJcBRCe4vv6B0U4nvgmwTA+PShhVB8aC6TjZZmMOE8/BLEDjRIpT7avpz7VR7zI6H0A==", - "dependencies": { - "base-x": "^4.0.0", - "blake2b": "^2.1.4" - } - }, - "node_modules/@subsquid/substrate-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-data/-/substrate-data-4.0.1.tgz", - "integrity": "sha512-1eluGvrSiXuQZJdg9Ihtbem0Kl72Ahz54Nexi+UM2WviPmSn7XYA2k/OUBK9dD6KBIAFayN7r99S6YtDgJhrqA==", - "dependencies": { - "@subsquid/scale-codec": "^4.0.1", - "@subsquid/substrate-data-raw": "^1.1.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-range": "^0.1.0", - "@subsquid/util-xxhash": "^1.2.2", - "@substrate/calc": "^0.2.8", - "blake2b": "^2.1.4" - }, - "peerDependencies": { - "@subsquid/rpc-client": "^4.6.0", - "@subsquid/substrate-runtime": "^1.0.2" - } - }, - "node_modules/@subsquid/substrate-data-raw": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-data-raw/-/substrate-data-raw-1.1.0.tgz", - "integrity": "sha512-wiFF2sE7enBSfr84voGdQ4o26nxB1lLF2PcuU7QJawebPWNtQCCcBfRCWZekaqhkF+Y/4uFpOI3krTFvqlo5rw==", - "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-range": "^0.1.0", - "@subsquid/util-timeout": "^2.3.2" - }, - "peerDependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.6.0" - } - }, - "node_modules/@subsquid/substrate-data-raw/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/substrate-data/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/substrate-metadata-explorer": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-3.1.2.tgz", - "integrity": "sha512-wITx+R5REa25uRFKF2fsWC3bOFOde80MEZrgfbjs5aAt4eNKHOL6s61g4xJRNIqXrRG20Drl/gLkBdMYSjnIgQ==", - "dev": true, - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.5.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-commander": "^1.3.2", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-read-lines": "^1.2.2", - "commander": "^11.1.0" - }, - "bin": { - "squid-substrate-metadata-explorer": "bin/run.js", - "substrate-metadata-explorer": "bin/run.js" - } - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "dev": true, - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/substrate-processor": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-8.1.1.tgz", - "integrity": "sha512-SB4rsNZDihzSy9PuVKi/KuoYhl/apnQaJAIAb7nBOYlk1kOzG3+jEEk3SxR53JYFuTelrwK/AY9lS4e+LwiDCg==", - "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.6.0", - "@subsquid/substrate-data": "^4.0.0", - "@subsquid/substrate-data-raw": "^1.0.1", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-archive-client": "^0.1.0", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-json": "^1.2.2", - "@subsquid/util-internal-processor-tools": "^4.0.0", - "@subsquid/util-internal-range": "^0.1.0" - }, - "peerDependencies": { - "@subsquid/substrate-runtime": "^1.0.2" - } - }, - "node_modules/@subsquid/substrate-processor/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/substrate-runtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-runtime/-/substrate-runtime-1.0.3.tgz", - "integrity": "sha512-3uNZqyHKzoMkSHQTZIJl1G7NiKyFl4cmDzVY3dU0o4VZhGNUAmR+HecT3WBkMMYye6uhDAeXsbVECa3ZnMM3gQ==", - "peer": true, - "dependencies": { - "@subsquid/scale-codec": "^4.0.1", - "@subsquid/scale-type-system": "^1.0.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "@subsquid/util-xxhash": "^1.2.2", - "blake2b": "^2.1.4" - } - }, - "node_modules/@subsquid/substrate-runtime/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "peer": true - }, - "node_modules/@subsquid/substrate-typegen": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-8.0.2.tgz", - "integrity": "sha512-JraheRh2ZdM1BoVF79DjhU/BIifuIlwyo2/DmL0RuGaslk6F/VGJ0gWSTpCZr6A2F3hlNFzLvzeZPO/xgH/JMg==", - "dev": true, - "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-code-printer": "^1.2.2", - "@subsquid/util-internal-config": "^2.2.2", - "@subsquid/util-internal-read-lines": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "commander": "^11.1.0" - }, - "bin": { - "squid-substrate-typegen": "bin/run.js" - }, - "peerDependencies": { - "@subsquid/substrate-runtime": "^1.0.2" - } - }, - "node_modules/@subsquid/substrate-typegen/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/substrate-typegen/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/typeorm-codegen": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-codegen/-/typeorm-codegen-1.3.3.tgz", - "integrity": "sha512-6k1oRWnaBNX4GZX737dvZll925uZKt2or/oXNaQRnHAmrCISkIEz7dYkl6PFfppYuardch41FBSFmOQaovPCXw==", - "dev": true, - "dependencies": { - "@subsquid/openreader": "^4.4.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-code-printer": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "commander": "^11.1.0" - }, - "bin": { - "squid-typeorm-codegen": "bin/run.js" - } - }, - "node_modules/@subsquid/typeorm-codegen/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/typeorm-codegen/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/typeorm-config": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-config/-/typeorm-config-4.1.0.tgz", - "integrity": "sha512-onZsHQIypCTRguOeec1Gmm+6EPlTg63QNE7Y74nrbBb4sabZtrK3K+EQJId4KIdk/kxA2Wi/g5H/VDNZNFSe9A==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal-ts-node": "^0.0.0", - "@subsquid/util-naming": "^1.2.2" - }, - "peerDependencies": { - "typeorm": "^0.3.17" - }, - "peerDependenciesMeta": { - "typeorm": { - "optional": true - } - } - }, - "node_modules/@subsquid/typeorm-migration": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-migration/-/typeorm-migration-1.3.0.tgz", - "integrity": "sha512-+xyOvN5asKdSEUMjKRuuwLDaOSRBBCRc2LIVdsyv5nnXXcmtOShfQsHQNX9EdKD2xx4cH2bnD7ol3PY63Q2xQw==", - "dependencies": { - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-code-printer": "^1.2.2", - "@subsquid/util-internal-ts-node": "^0.0.0", - "commander": "^11.1.0", - "dotenv": "^16.3.1" - }, - "bin": { - "squid-typeorm-migration": "bin/squid-typeorm-migration", - "squid-typeorm-migration-apply": "bin/squid-typeorm-migration-apply", - "squid-typeorm-migration-create": "bin/squid-typeorm-migration-create", - "squid-typeorm-migration-generate": "bin/squid-typeorm-migration-generate", - "squid-typeorm-migration-revert": "bin/squid-typeorm-migration-revert" - }, - "peerDependencies": { - "typeorm": "^0.3.17" - } - }, - "node_modules/@subsquid/typeorm-migration/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/typeorm-migration/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/typeorm-store": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-store/-/typeorm-store-1.3.0.tgz", - "integrity": "sha512-32jwKA2fEYuGpyKEisKOlrz6JTd0hXTXOLC9S4IIsOnhkY70Ua69QDe0CCTgKTrvMNOCwk3gPR+q8RwrlEMupQ==", - "peer": true, - "dependencies": { - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/util-internal": "^3.1.0" - }, - "peerDependencies": { - "typeorm": "^0.3.17" - } - }, - "node_modules/@subsquid/typeorm-store/node_modules/@subsquid/util-internal": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.1.0.tgz", - "integrity": "sha512-m1lIiy7Tc2+QR5Jcx9eGsVsB4ASR/bA5Z9gnB+qUy1BzYuz5FEiJOYCQm6J5Bt+VnYDYYyANEUMq4Cl3J5wuSg==", - "peer": true - }, - "node_modules/@subsquid/util-internal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-1.1.0.tgz", - "integrity": "sha512-O6m666RDcWEw4vb3bmeNZKlAa1rGOHQvS0nhZFTBXnxZpqK/pU5N0jrQ7X/3is0pY2RKxFoxTurZjhv4QdxtqA==" - }, - "node_modules/@subsquid/util-internal-archive-client": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-archive-client/-/util-internal-archive-client-0.1.0.tgz", - "integrity": "sha512-bXFNZvXduKzG3NjPLmFPU5B+r+UHXT45Yr5YOpgD9sZvrHbNc/n877jSEt1qnzUJKnTl1hxtXlXvpwIBEjKT3Q==", - "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-range": "^0.1.0" - }, - "peerDependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2" - }, - "peerDependenciesMeta": { - "@subsquid/logger": { - "optional": true - } - } - }, - "node_modules/@subsquid/util-internal-archive-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-binary-heap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-binary-heap/-/util-internal-binary-heap-1.0.0.tgz", - "integrity": "sha512-88auuc8yNFmCZugmJSTYzS7WM/nN2obKGQCgrl8Jty5rJUFbqazGSi8icqftKhv6MPtUMJ3PSTRLiTFXAUGnAA==" - }, - "node_modules/@subsquid/util-internal-code-printer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-code-printer/-/util-internal-code-printer-1.2.2.tgz", - "integrity": "sha512-uerf8T/FU4bxxhat09MgRrdmwifLwV+tO7QvlMvZ5ccwaVrJjHs+0/LY/h1e9YowH3+ZtwPqjYrd5tNOHWX8wA==" - }, - "node_modules/@subsquid/util-internal-config": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-config/-/util-internal-config-2.2.2.tgz", - "integrity": "sha512-Qc8YH8eoPWrOoPHLnXJ/ksPo2pLpa126bY7qaM22/++Nk8DyexLxgbjYZTBeIHd/DXjTfgJpDDfxmCyy5RWZmA==", - "dev": true, - "dependencies": { - "@exodus/schemasafe": "^1.3.0", - "jsonc-parser": "^3.2.0" - } - }, - "node_modules/@subsquid/util-internal-counters": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-counters/-/util-internal-counters-1.3.2.tgz", - "integrity": "sha512-GxpOIL36JXSo0KdOT7k6CsI4DY804rn/X7pTdfKhych0ReHaDghnwNyvgb7Njv9euEHWUt4MxXbfQ9YrbpPDng==" - }, - "node_modules/@subsquid/util-internal-hex": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-hex/-/util-internal-hex-1.2.2.tgz", - "integrity": "sha512-E43HVqf23jP5hvtWF9GsiN8luANjnJ1daR2SVTwaIUAYU/uNjv1Bi6tHz2uexlflBhyxAgBDmHgunXZ45wQTIw==" - }, - "node_modules/@subsquid/util-internal-http-server": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-http-server/-/util-internal-http-server-1.2.2.tgz", - "integrity": "sha512-B2SOSz8frUkXarbsELljew25iXFFyATEtS8NV31xKUXmhYfPklqrcF4YNJ/aLlfCtVOiR042YKVZDx2T8RbN6w==", - "dependencies": { - "stoppable": "^1.1.0" - } - }, - "node_modules/@subsquid/util-internal-ingest-tools": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ingest-tools/-/util-internal-ingest-tools-1.1.0.tgz", - "integrity": "sha512-Zk5IPrclv+OrAV6EFQWGQS86YfN51/tLKKW137VzFPCWNEBSPCXu5lYe/hCwwW34k+gtf5TYLb3s69d2P1e/lg==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-range": "^0.1.0" - }, - "peerDependencies": { - "@subsquid/util-internal-archive-client": "^0.1.0" - }, - "peerDependenciesMeta": { - "@subsquid/util-internal-archive-client": { - "optional": true - } - } - }, - "node_modules/@subsquid/util-internal-ingest-tools/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-json": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json/-/util-internal-json-1.2.2.tgz", - "integrity": "sha512-+axQnlkIzscdy0T/vR1Dez/2NVCryWgB3OocMGJcx2GjhHVkmuJSLFqOdk9o90OocfQFC57NTZx22oa2yd+4Yw==", - "dependencies": { - "@subsquid/util-internal-hex": "^1.2.2" - } - }, - "node_modules/@subsquid/util-internal-processor-tools": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-processor-tools/-/util-internal-processor-tools-4.0.1.tgz", - "integrity": "sha512-2+IOze7VkgUuJqRThzq6QDO+xNd6CAbPUgtjgOi6EB3/ImrJXEjENBOFzTVSTP0Ri+kT/CyoyBPniyGBGzogiA==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-counters": "^1.3.2", - "@subsquid/util-internal-prometheus-server": "^1.2.2", - "@subsquid/util-internal-range": "^0.1.0", - "prom-client": "^14.2.0" - } - }, - "node_modules/@subsquid/util-internal-processor-tools/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-prometheus-server": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-prometheus-server/-/util-internal-prometheus-server-1.2.2.tgz", - "integrity": "sha512-KOjokVhs+qJOZSkM+NPZ/XE5bGvEGGJkVbMaJJfaZ+UfZQPQDfVJrI2rPV5D9FwzctxKG9b7lPArryBIUsgrZw==", - "dependencies": { - "@subsquid/util-internal-http-server": "^1.2.2" - }, - "peerDependencies": { - "prom-client": "^14.2.0" - } - }, - "node_modules/@subsquid/util-internal-range": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-range/-/util-internal-range-0.1.0.tgz", - "integrity": "sha512-+pJeJyH0oetqu2eRwOkP7NCSaCGzLpCCNpS9Fwi968RL+LfWSKn+wGUX6Ulf0afSslvrQ/34ZtyWdjyya1AGxA==", - "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-binary-heap": "^1.0.0" - } - }, - "node_modules/@subsquid/util-internal-range/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-read-lines": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-read-lines/-/util-internal-read-lines-1.2.2.tgz", - "integrity": "sha512-D9Cks2KVmVQMsJLFskQlwufykWiLLooDFmAYmgwSkZEVnCqJ1ukX8PZfkI+ADfhT5LB64O9FZL7hI0939qiXBA==", - "dev": true - }, - "node_modules/@subsquid/util-internal-ts-node": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ts-node/-/util-internal-ts-node-0.0.0.tgz", - "integrity": "sha512-VBnrKrkNcqbT3hMLrjpEPuwMAihFhW9oUmK53bccBCCXrUiATNUblQD2S4IWd9/UBO5Q33ohpbE9sAodDq2DXw==" - }, - "node_modules/@subsquid/util-naming": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-naming/-/util-naming-1.2.2.tgz", - "integrity": "sha512-NveXOiAbWiWkWd3Iv2jEwSAKvQHOG/HfIsPmmNab8TPX/XgJ6J5Ngx6lHEiqs746m4sOhZ2yipxKAEDgrERaxA==", - "dependencies": { - "camelcase": "^6.3.0", - "inflected": "^2.1.0" - } - }, - "node_modules/@subsquid/util-timeout": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-timeout/-/util-timeout-2.3.2.tgz", - "integrity": "sha512-DVUnuiWAX7/4ZvbzuHENUShEEV4G0M38mQ/+R8DpHxwpCSrtEaSRaUMwdyUSn/WVqR7wo9+jkLCxFjE5feCURQ==" - }, - "node_modules/@subsquid/util-xxhash": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-xxhash/-/util-xxhash-1.2.2.tgz", - "integrity": "sha512-S49O4bxs80y3/oBl1xKBE/zzvDPLr88yE+03zfOXaNj/wesTGzicqBxhzDULmyo6kpdRmc0ZPOZCQ3U6gNQpxQ==", - "dependencies": { - "xxhash-wasm": "^1.0.2", - "xxhashjs": "^0.2.2" - } - }, - "node_modules/@substrate/calc": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@substrate/calc/-/calc-0.2.8.tgz", - "integrity": "sha512-1c3mxf35FBeOswduhy0Wil9s4exHahXFo974qa0Ci2AORX8JTxmwhBb10+3Ls9iWoTFwvgOaFr9v1HeRL5tCig==" - }, - "node_modules/@types/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" - }, - "node_modules/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "node_modules/@types/mime": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.4.tgz", - "integrity": "sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==" - }, - "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/qs": { - "version": "6.9.11", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", - "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" - }, - "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/apollo-datasource": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", - "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", - "deprecated": "The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/apollo-reporting-protobuf": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz", - "integrity": "sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==", - "deprecated": "The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/protobufjs": "1.2.6" - } - }, - "node_modules/apollo-reporting-protobuf/node_modules/@apollo/protobufjs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", - "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - } - }, - "node_modules/apollo-reporting-protobuf/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - }, - "node_modules/apollo-server-core": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.13.0.tgz", - "integrity": "sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg==", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "@apollo/utils.usagereporting": "^1.0.0", - "@apollographql/apollo-tools": "^0.5.3", - "@apollographql/graphql-playground-html": "1.6.29", - "@graphql-tools/mock": "^8.1.2", - "@graphql-tools/schema": "^8.0.0", - "@josephg/resolvable": "^1.0.0", - "apollo-datasource": "^3.3.2", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1", - "apollo-server-errors": "^3.3.1", - "apollo-server-plugin-base": "^3.7.2", - "apollo-server-types": "^3.8.0", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.1.0", - "graphql-tag": "^2.11.0", - "loglevel": "^1.6.8", - "lru-cache": "^6.0.0", - "node-abort-controller": "^3.0.1", - "sha.js": "^2.4.11", - "uuid": "^9.0.0", - "whatwg-mimetype": "^3.0.0" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/@graphql-tools/merge": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", - "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", - "dependencies": { - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/@graphql-tools/schema": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", - "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", - "dependencies": { - "@graphql-tools/merge": "8.3.1", - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/@graphql-tools/utils": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", - "dependencies": { - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/apollo-server-core/node_modules/value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/apollo-server-env": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", - "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", - "deprecated": "The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "node-fetch": "^2.6.7" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/apollo-server-env/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/apollo-server-errors": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", - "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", - "deprecated": "The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-express": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.13.0.tgz", - "integrity": "sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g==", - "dependencies": { - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.2", - "@types/cors": "2.8.12", - "@types/express": "4.17.14", - "@types/express-serve-static-core": "4.17.31", - "accepts": "^1.3.5", - "apollo-server-core": "^3.13.0", - "apollo-server-types": "^3.8.0", - "body-parser": "^1.19.0", - "cors": "^2.8.5", - "parseurl": "^1.3.3" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "express": "^4.17.1", - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-plugin-base": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz", - "integrity": "sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==", - "deprecated": "The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "apollo-server-types": "^3.8.0" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-plugin-response-cache": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-response-cache/-/apollo-server-plugin-response-cache-3.7.1.tgz", - "integrity": "sha512-3FHwwySf1kQl8dGC+2E08LtDeFGUOeqckLchAD1REYx1vwMZbGhmEIwaNezjXwxkTM5Y7l38n0vQTka6YoQN7w==", - "deprecated": "The `apollo-server-plugin-response-cache` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server-plugin-response-cache` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-plugin-base": "^3.6.3", - "apollo-server-types": "^3.6.3" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-types": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.8.0.tgz", - "integrity": "sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==", - "deprecated": "The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/app-root-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", - "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dependencies": { - "retry": "0.13.1" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", - "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/b4a": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bintrees": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", - "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==" - }, - "node_modules/blake2b": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz", - "integrity": "sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==", - "dependencies": { - "blake2b-wasm": "^2.4.0", - "nanoassert": "^2.0.0" - } - }, - "node_modules/blake2b-wasm": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz", - "integrity": "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==", - "dependencies": { - "b4a": "^1.0.1", - "nanoassert": "^2.0.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/bufferutil": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", - "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "dependencies": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "highlight": "bin/highlight" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "node_modules/cli-highlight/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cli-highlight/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cli-highlight/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/cli-highlight/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cli-highlight/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "engines": { - "node": ">=14" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cross-inspect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz", - "integrity": "sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==", - "dependencies": { - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" - }, - "node_modules/cuint": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/dataloader": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", - "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==" - }, - "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "optional": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/dotenv": { - "version": "16.4.4", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz", - "integrity": "sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dset": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", - "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/easy-table": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz", - "integrity": "sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "optionalDependencies": { - "wcwidth": "^1.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-parse-resolve-info": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/graphql-parse-resolve-info/-/graphql-parse-resolve-info-4.14.0.tgz", - "integrity": "sha512-5Fbquh3IZMciLYgtiWeFxAeZOwpPyonhbaN05fzL/Gll0HS0hMqJh1Q88NQLHiASD6//cJ3LTXLncuajRqsUcA==", - "dependencies": { - "debug": "^4.1.1", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=8.6" - }, - "peerDependencies": { - "graphql": ">=0.9 <0.14 || ^14.0.2 || ^15.4.0 || ^16.3.0" - } - }, - "node_modules/graphql-parse-resolve-info/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/graphql-parse-resolve-info/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/graphql-ws": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.15.0.tgz", - "integrity": "sha512-xWGAtm3fig9TIhSaNsg0FaDZ8Pyn/3re3RFlP4rhQcmjRDIPpk1EhRuNB+YSJtLzttyuToaDiNhwT1OMoGnJnw==", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": ">=0.11 <=16" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "engines": { - "node": "*" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/inflected": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/inflected/-/inflected-2.1.0.tgz", - "integrity": "sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==" - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ioredis": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", - "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", - "dependencies": { - "@ioredis/commands": "^1.1.1", - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.4", - "denque": "^2.1.0", - "lodash.defaults": "^4.2.0", - "lodash.isarguments": "^3.1.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" - } - }, - "node_modules/ioredis/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ioredis/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" - }, - "node_modules/loglevel": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", - "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/lru-cache": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", - "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mkdirp": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", - "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoassert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz", - "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node_modules/node-abort-controller": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==" - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, - "engines": { - "node": ">= 8.0.0" - }, - "optionalDependencies": { - "pg-cloudflare": "^1.1.1" - }, - "peerDependencies": { - "pg-native": ">=3.0.1" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "node_modules/pg-cloudflare": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", - "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", - "optional": true - }, - "node_modules/pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pgpass": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "dependencies": { - "split2": "^4.1.0" - } - }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prom-client": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", - "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", - "dependencies": { - "tdigest": "^0.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "dependencies": { - "redis-errors": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/reflect-metadata": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", - "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", - "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", - "dependencies": { - "define-data-property": "^1.1.2", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", - "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/stoppable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", - "engines": { - "node": ">=4", - "npm": ">=6" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/sync-fetch": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.5.2.tgz", - "integrity": "sha512-6gBqqkHrYvkH65WI2bzrDwrIKmt3U10s4Exnz3dYuE5Ah62FIfNv/F63inrNhu2Nyh3GH5f42GKU3RrSJoaUyQ==", - "dependencies": { - "node-fetch": "^2.6.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/sync-fetch/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/tdigest": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", - "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", - "dependencies": { - "bintrees": "1.0.2" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typeorm": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.20.tgz", - "integrity": "sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==", - "dependencies": { - "@sqltools/formatter": "^1.2.5", - "app-root-path": "^3.1.0", - "buffer": "^6.0.3", - "chalk": "^4.1.2", - "cli-highlight": "^2.1.11", - "dayjs": "^1.11.9", - "debug": "^4.3.4", - "dotenv": "^16.0.3", - "glob": "^10.3.10", - "mkdirp": "^2.1.3", - "reflect-metadata": "^0.2.1", - "sha.js": "^2.4.11", - "tslib": "^2.5.0", - "uuid": "^9.0.0", - "yargs": "^17.6.2" - }, - "bin": { - "typeorm": "cli.js", - "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", - "typeorm-ts-node-esm": "cli-ts-node-esm.js" - }, - "engines": { - "node": ">=16.13.0" - }, - "funding": { - "url": "https://opencollective.com/typeorm" - }, - "peerDependencies": { - "@google-cloud/spanner": "^5.18.0", - "@sap/hana-client": "^2.12.25", - "better-sqlite3": "^7.1.2 || ^8.0.0 || ^9.0.0", - "hdb-pool": "^0.1.6", - "ioredis": "^5.0.4", - "mongodb": "^5.8.0", - "mssql": "^9.1.1 || ^10.0.1", - "mysql2": "^2.2.5 || ^3.0.1", - "oracledb": "^6.3.0", - "pg": "^8.5.1", - "pg-native": "^3.0.0", - "pg-query-stream": "^4.0.0", - "redis": "^3.1.1 || ^4.0.0", - "sql.js": "^1.4.0", - "sqlite3": "^5.0.3", - "ts-node": "^10.7.0", - "typeorm-aurora-data-api-driver": "^2.0.0" - }, - "peerDependenciesMeta": { - "@google-cloud/spanner": { - "optional": true - }, - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "ts-node": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "engines": { - "node": ">=12" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "optional": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", - "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", - "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", - "dependencies": { - "available-typed-arrays": "^1.0.6", - "call-bind": "^1.0.5", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xss": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xss/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/xxhash-wasm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", - "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==" - }, - "node_modules/xxhashjs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", - "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", - "dependencies": { - "cuint": "^0.2.2" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - } - } -} diff --git a/indexers/account-squid/package.json b/indexers/account-squid/package.json deleted file mode 100644 index 3d7d22aa9..000000000 --- a/indexers/account-squid/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "squid", - "private": true, - "engines": { - "node": ">=16" - }, - "scripts": { - "build": "rm -rf lib && tsc", - "db:migrate": "npx squid-typeorm-migration apply", - "processor:start": "node lib/processor.js" - }, - "dependencies": { - "@belopash/typeorm-store": "^1.3.0", - "@subsquid/archive-registry": "^3.3.0", - "@subsquid/graphql-server": "^4.5.0", - "@subsquid/ss58": "^2.0.2", - "@subsquid/substrate-processor": "^8.1.1", - "@subsquid/typeorm-migration": "^1.3.0", - "dotenv": "^16.4.4", - "pg": "8.11.3", - "typeorm": "^0.3.20" - }, - "devDependencies": { - "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/substrate-typegen": "^8.0.2", - "@subsquid/typeorm-codegen": "^1.3.3", - "@types/node": "^20.11.17", - "typescript": "^5.3.3" - } -} diff --git a/indexers/account-squid/schema.graphql b/indexers/account-squid/schema.graphql deleted file mode 100644 index d6ecc2513..000000000 --- a/indexers/account-squid/schema.graphql +++ /dev/null @@ -1,29 +0,0 @@ -type Account @entity { - "Account address" - id: ID! @index - free: BigInt! - reserved: BigInt! - total: BigInt! - updatedAtBlock: Int! @index - nonce: Int! - transfersTo: [Transfer!] @derivedFrom(field: "to") - transfersFrom: [Transfer!] @derivedFrom(field: "from") -} - -type BackupCounter @entity { - id: ID! @index - balancesTransfersVolume: BigInt! - balancesTransfersAmount: BigInt! - chainSignedExtrinsics: BigInt! -} - -type Transfer @entity { - id: ID! @index - blockNumber: Int! @index - timestamp: DateTime! @index - extrinsicHash: String @index - from: Account! - to: Account! - amount: BigInt! @index - fee: BigInt! -} diff --git a/indexers/account-squid/scripts/docker-run.sh b/indexers/account-squid/scripts/docker-run.sh deleted file mode 100644 index 1947733d9..000000000 --- a/indexers/account-squid/scripts/docker-run.sh +++ /dev/null @@ -1,5 +0,0 @@ -set -e -docker build . --target processor -t squid-processor -# make sure the port matches .env. -# For Linux, add --add-host=host.docker.internal:host-gateway -docker run --rm -e DB_HOST=host.docker.internal --env-file=.env squid-processor \ No newline at end of file diff --git a/indexers/account-squid/scripts/install-sqd.sh b/indexers/account-squid/scripts/install-sqd.sh deleted file mode 100644 index 74f7eb7b5..000000000 --- a/indexers/account-squid/scripts/install-sqd.sh +++ /dev/null @@ -1,39 +0,0 @@ -#! /bin/bash - -set -e - -if ! command -v sqd &> /dev/null; then - echo "sqd is required but not installed. Proceeding with the rest of the script..." -else - NODE_VERSION=20.11.1 - - mkdir -p ~/{opt,src,bin} - cd ~/src - wget -S https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz - tar xvf node-v${NODE_VERSION}-linux-x64.tar.xz -C ~/opt - - cd ~/bin - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/node node - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/npm npm - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/npx npx - - npm i -g @subsquid/cli@latest - - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/sqd sqd - - echo "export PATH=$HOME/bin:$PATH" >> ~/.bash_profile - echo 'export NODE_OPTIONS="--max-old-space-size=4096"' >> ~/.bash_profile - - cd ~/ - git clone https://github.com/autonomys/astral.git - - ln -s astral/account-squid account-squid - - cd account-squid - npm ci - sqd up - sqd build - cp -rf .env.sample .env - export NODE_OPTIONS="--max-old-space-size=4096" - nohup sqd run -f .env . & -fi diff --git a/indexers/account-squid/scripts/sub-client.js b/indexers/account-squid/scripts/sub-client.js deleted file mode 100644 index 87ba38a3c..000000000 --- a/indexers/account-squid/scripts/sub-client.js +++ /dev/null @@ -1,42 +0,0 @@ -const WebSocket = require('ws') -const { createClient } = require('graphql-ws'); - -const port = process.env.GQL_PORT || 4350 -const host = process.env.GQL_HOST || 'localhost' -const proto = process.env.GQL_PROTO || 'ws' - - -const client = createClient({ - webSocketImpl: WebSocket, - url: `${proto}://${host}:${port}/graphql`, -}); - -client.subscribe( - { - query: ` - subscription { - transfers(limit: 5, orderBy: timestamp_DESC) { - amount - blockNumber - from { - id - } - to { - id - } - } - } - `, - }, - { - next: (data) => { - console.log(`New transfers: ${JSON.stringify(data)}`); - }, - error: (error) => { - console.error('error', error); - }, - complete: () => { - console.log('done!'); - }, - } -); \ No newline at end of file diff --git a/indexers/account-squid/squid.yaml b/indexers/account-squid/squid.yaml deleted file mode 100644 index 52e59f71c..000000000 --- a/indexers/account-squid/squid.yaml +++ /dev/null @@ -1,18 +0,0 @@ -manifestVersion: subsquid.io/v0.1 -name: account-squid -version: 1 -description: Substrate squid template -build: -deploy: - addons: - postgres: - processor: - cmd: - - sqd - - process:prod - env: - RPC_ENDPOINT: ${{ secrets.RPC_ENDPOINT }} - api: - cmd: - - sqd - - serve:prod diff --git a/indexers/account-squid/src/account/constants.ts b/indexers/account-squid/src/account/constants.ts deleted file mode 100644 index 93f0e03de..000000000 --- a/indexers/account-squid/src/account/constants.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { events } from "../types"; - -export const CONFIG = { - prefix: 2254, -}; - -export const PREFIX = 2254; - -export const BALANCE_UPDATE_EVENTS = [ - events.balances.balanceSet.v0.name, - events.balances.deposit.v0.name, - events.balances.reserved.v0.name, - events.balances.slashed.v0.name, - events.balances.withdraw.v0.name, - events.balances.unreserved.v0.name, - events.balances.burned.v0.name, - events.balances.restored.v0.name, -]; diff --git a/indexers/account-squid/src/account/utils.ts b/indexers/account-squid/src/account/utils.ts deleted file mode 100644 index 7060c3478..000000000 --- a/indexers/account-squid/src/account/utils.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { StoreWithCache } from "@belopash/typeorm-store"; -import * as ss58 from "@subsquid/ss58"; -import { In } from "typeorm"; -import { Account } from "../model"; -import { Call, Event, ProcessorContext } from "../processor"; -import { events } from "../types"; -import { BALANCE_UPDATE_EVENTS, CONFIG } from "./constants"; - -export interface TransferEvent { - id: string; - blockNumber: number; - timestamp: Date; - extrinsicHash?: string; - from: string; - to: string; - amount: bigint; - fee?: bigint; -} - -/** - * - * @param id - * @returns substrate account address properly encoded - */ -export function encodeId(id: Uint8Array | string) { - return ss58.codec(CONFIG.prefix).encode(id); -} - -export function callIsValid(call: Call): boolean { - return ( - call.parentCall == null && - call.origin && - call.origin.__kind === "system" && - call.origin.value.__kind === "Signed" - ); -} - -export function isBalanceUpdateEvent(event: Event): boolean { - return BALANCE_UPDATE_EVENTS.includes(event.name); -} - -export function handleRepatriatedEvent(event: Event) { - const accountsToUpdate = new Set(); - - const rec = events.balances.reserveRepatriated.v0.decode(event); - - accountsToUpdate.add(rec.from); - accountsToUpdate.add(rec.to); - - return accountsToUpdate.values(); -} - -export function handleEndowedEvent(event: Event) { - const accountsToUpdate = new Set(); - - const rec = events.balances.endowed.v0.decode(event); - - accountsToUpdate.add(rec.account); - - return accountsToUpdate.values(); -} - -export async function ensureAccountsExist( - ctx: ProcessorContext, - accountIds: string[] -): Promise> { - const accounts = new Map(); - - const existingAccounts = await ctx.store.findBy(Account, { - id: In(accountIds), - }); - existingAccounts.forEach((account) => accounts.set(account.id, account)); - - accountIds.forEach((id) => { - if (!accounts.has(id)) accounts.set(id, new Account({ id })); - }); - - return accounts; -} diff --git a/indexers/account-squid/src/main.ts b/indexers/account-squid/src/main.ts deleted file mode 100644 index b58604129..000000000 --- a/indexers/account-squid/src/main.ts +++ /dev/null @@ -1,223 +0,0 @@ -import { - StoreWithCache, - TypeormDatabaseWithCache, -} from "@belopash/typeorm-store"; -import { - TransferEvent, - callIsValid, - encodeId, - ensureAccountsExist, - handleEndowedEvent, - handleRepatriatedEvent, - isBalanceUpdateEvent, -} from "./account/utils"; -import { Account, Transfer } from "./model"; -import { - Block, - BlockHeader, - Event, - ProcessorContext, - processor, -} from "./processor"; -import { events, storage } from "./types"; - -processor.run( - new TypeormDatabaseWithCache({ supportHotBlocks: true }), - async (ctx) => { - const transfers: Transfer[] = []; - const accountsList: string[] = []; - const blocksLength = ctx.blocks.length; - - for (let block of ctx.blocks) { - accountsList.push(...gatherAccountsToUpdateFromCalls(block)); - const eventsResult = await processEvents(ctx, block); - accountsList.push(...eventsResult.accountsToUpdate); - transfers.push(...eventsResult.transfers); - } - - const updatedAccounts = await updateAccounts( - ctx, - ctx.blocks[blocksLength - 1].header, - Array.from(accountsList) - ); - - await ctx.store.upsert(updatedAccounts); - await ctx.store.insert(transfers); - - ctx.log.child("accounts").info(`updated: ${updatedAccounts.length}`); - ctx.log.child("transfers").info(`updated: ${transfers.length}`); - } -); - -function gatherAccountsToUpdateFromCalls(block: Block) { - const accountsToUpdate = new Set(); - - for (let call of block.calls) { - if (callIsValid(call)) { - const accountId = call.origin.value.value; - accountsToUpdate.add(accountId); - } - } - - return accountsToUpdate.values(); -} - -async function processEvents( - ctx: ProcessorContext, - block: Block -) { - const accountsToUpdate: string[] = []; - const transfers: Transfer[] = []; - - for (let event of block.events) { - switch (event.name) { - case events.balances.transfer.name: - const rec = await handleTransferEvent(block.header, event, ctx); - accountsToUpdate.push(...rec.accountsToUpdate.values()); - transfers.push(...rec.transfers); - break; - case events.balances.reserveRepatriated.v0.name: - accountsToUpdate.push(...handleRepatriatedEvent(event)); - break; - case events.balances.endowed.v0.name: - accountsToUpdate.push(...handleEndowedEvent(event)); - break; - default: - if (isBalanceUpdateEvent(event)) { - accountsToUpdate.push(event.args.who); - } - break; - } - } - - return { accountsToUpdate, transfers }; -} - -async function handleTransferEvent( - header: BlockHeader, - event: Event, - ctx: ProcessorContext -) { - const transfers: Transfer[] = []; - const accountsToUpdate = new Set(); - const rec = events.balances.transfer.v0.decode(event); - - const transferEvent = getTransferEvent(header, event); - - const accounts = await ensureAccountsExist(ctx, [ - transferEvent.from, - transferEvent.to, - ]); - - transfers.push( - new Transfer({ - id: event.id, - blockNumber: header.height, - timestamp: new Date(header.timestamp || 0), - extrinsicHash: event.extrinsic?.hash, - from: accounts.get(transferEvent.from), - to: accounts.get(transferEvent.to), - amount: transferEvent.amount, - fee: event.extrinsic?.fee || 0n, - }) - ); - - accountsToUpdate.add(rec.from); - accountsToUpdate.add(rec.to); - - return { transfers, accountsToUpdate }; -} - -function getTransferEvent(header: BlockHeader, event: Event): TransferEvent { - const rec = events.balances.transfer.v0.decode(event); - - const transfer = { - id: event.id, - blockNumber: header.height, - timestamp: new Date(header.timestamp || 0), - extrinsicHash: event.extrinsic?.hash, - from: encodeId(rec.from), - to: encodeId(rec.to), - amount: rec.amount, - fee: event.extrinsic?.fee || 0n, - }; - - return transfer; -} - -async function getAccountBalance(header: BlockHeader, accountId: string) { - let balance = await getBalancesAccountBalance(header, accountId); - - if (balance == null) { - balance = await getSystemAccountBalance(header, accountId); - } - - return balance; -} - -async function updateAccounts( - ctx: ProcessorContext, - header: BlockHeader, - accountIds: string[] -) { - const accounts: Account[] = []; - - for (let i = 0; i < accountIds.length; i++) { - const accountId = accountIds[i]; - const id = encodeId(accountId); - const balance = await getAccountBalance(header, accountId); - - if (!balance) { - ctx.log.warn(`No balance for account id: ${id}`); - continue; - } - - const total = balance.free + balance.reserved; - // check if there is an existing account created earlier (i.e. when processing blocks) - const existingAccount = await ctx.store.get(Account, id); - - // update account nonce if it exists - const accountInfo = await storage.system.account.v0.get(header, accountId); - - const account = new Account({ - ...existingAccount, - id, - free: balance.free, - reserved: balance.reserved, - total, - updatedAtBlock: header.height, - nonce: accountInfo?.nonce, - }); - - accounts.push(account); - } - - return accounts; -} - -async function getSystemAccountBalance(header: BlockHeader, accountId: string) { - const accountInfo = await storage.system.account.v0.get(header, accountId); - - if (accountInfo == null) { - return undefined; - } - - const { free, reserved } = accountInfo.data; - - return { free, reserved }; -} - -async function getBalancesAccountBalance( - header: BlockHeader, - accountId: string -) { - const balance = await storage.balances.account.v0.get(header, accountId); - - if (balance == null) { - return undefined; - } - - const { free, reserved } = balance; - - return { free, reserved }; -} diff --git a/indexers/account-squid/src/model/generated/account.model.ts b/indexers/account-squid/src/model/generated/account.model.ts deleted file mode 100644 index 4c130e988..000000000 --- a/indexers/account-squid/src/model/generated/account.model.ts +++ /dev/null @@ -1,38 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, OneToMany as OneToMany_} from "typeorm" -import * as marshal from "./marshal" -import {Transfer} from "./transfer.model" - -@Entity_() -export class Account { - constructor(props?: Partial) { - Object.assign(this, props) - } - - /** - * Account address - */ - @PrimaryColumn_() - id!: string - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - free!: bigint - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - reserved!: bigint - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - total!: bigint - - @Index_() - @Column_("int4", {nullable: false}) - updatedAtBlock!: number - - @Column_("int4", {nullable: false}) - nonce!: number - - @OneToMany_(() => Transfer, e => e.to) - transfersTo!: Transfer[] - - @OneToMany_(() => Transfer, e => e.from) - transfersFrom!: Transfer[] -} diff --git a/indexers/account-squid/src/model/generated/backupCounter.model.ts b/indexers/account-squid/src/model/generated/backupCounter.model.ts deleted file mode 100644 index 5ab22a892..000000000 --- a/indexers/account-squid/src/model/generated/backupCounter.model.ts +++ /dev/null @@ -1,21 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_} from "typeorm" -import * as marshal from "./marshal" - -@Entity_() -export class BackupCounter { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - balancesTransfersVolume!: bigint - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - balancesTransfersAmount!: bigint - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - chainSignedExtrinsics!: bigint -} diff --git a/indexers/account-squid/src/model/generated/index.ts b/indexers/account-squid/src/model/generated/index.ts deleted file mode 100644 index 6f012d369..000000000 --- a/indexers/account-squid/src/model/generated/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./account.model" -export * from "./backupCounter.model" -export * from "./transfer.model" diff --git a/indexers/account-squid/src/model/generated/marshal.ts b/indexers/account-squid/src/model/generated/marshal.ts deleted file mode 100644 index eaf8d36a8..000000000 --- a/indexers/account-squid/src/model/generated/marshal.ts +++ /dev/null @@ -1,179 +0,0 @@ -import assert from 'assert' - - -export interface Marshal { - fromJSON(value: unknown): T - toJSON(value: T): S -} - - -export const string: Marshal = { - fromJSON(value: unknown): string { - assert(typeof value === 'string', 'invalid String') - return value - }, - toJSON(value) { - return value - } -} - - -export const id = string - - -export const int: Marshal = { - fromJSON(value: unknown): number { - assert(Number.isInteger(value), 'invalid Int') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const float: Marshal = { - fromJSON(value: unknown): number { - assert(typeof value === 'number', 'invalid Float') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const boolean: Marshal = { - fromJSON(value: unknown): boolean { - assert(typeof value === 'boolean', 'invalid Boolean') - return value - }, - toJSON(value: boolean): boolean { - return value - } -} - - -export const bigint: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigInt') - return BigInt(value) - }, - toJSON(value: bigint): string { - return value.toString() - } -} - - -export const bigdecimal: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigDecimal') - return decimal.BigDecimal(value) - }, - toJSON(value: any): string { - return value.toString() - } -} - - -// credit - https://github.com/Urigo/graphql-scalars/blob/91b4ea8df891be8af7904cf84751930cc0c6613d/src/scalars/iso-date/validator.ts#L122 -const RFC_3339_REGEX = - /^(\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60))(\.\d{1,})?([Z])$/ - - -function isIsoDateTimeString(s: string): boolean { - return RFC_3339_REGEX.test(s) -} - - -export const datetime: Marshal = { - fromJSON(value: unknown): Date { - assert(typeof value === 'string', 'invalid DateTime') - assert(isIsoDateTimeString(value), 'invalid DateTime') - return new Date(value) - }, - toJSON(value: Date): string { - return value.toISOString() - } -} - - -export const bytes: Marshal = { - fromJSON(value: unknown): Buffer { - assert(typeof value === 'string', 'invalid Bytes') - assert(value.length % 2 === 0, 'invalid Bytes') - assert(/^0x[0-9a-f]+$/i.test(value), 'invalid Bytes') - return Buffer.from(value.slice(2), 'hex') - }, - toJSON(value: Uint8Array): string { - if (Buffer.isBuffer(value)) { - return '0x' + value.toString('hex') - } else { - return '0x' + Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString('hex') - } - } -} - - -export function fromList(list: unknown, f: (val: unknown) => T): T[] { - assert(Array.isArray(list)) - return list.map((val) => f(val)) -} - - -export function nonNull(val: T | undefined | null): T { - assert(val != null, 'non-nullable value is null') - return val -} - - -export const bigintTransformer = { - to(x?: bigint) { - return x?.toString() - }, - from(s?: string): bigint | undefined { - return s == null ? undefined : BigInt(s) - } -} - - -export const floatTransformer = { - to(x?: number) { - return x?.toString() - }, - from(s?: string): number | undefined { - return s == null ? undefined : Number(s) - } -} - - -export const bigdecimalTransformer = { - to(x?: any) { - return x?.toString() - }, - from(s?: any): any | undefined { - return s == null ? undefined : decimal.BigDecimal(s) - } -} - - -export function enumFromJson(json: unknown, enumObject: E): E[keyof E] { - assert(typeof json == 'string', 'invalid enum value') - let val = (enumObject as any)[json] - assert(typeof val == 'string', `invalid enum value`) - return val as any -} - - -const decimal = { - get BigDecimal(): any { - throw new Error('Package `@subsquid/big-decimal` is not installed') - } -} - - -try { - Object.defineProperty(decimal, "BigDecimal", { - value: require('@subsquid/big-decimal').BigDecimal - }) -} catch (e) {} diff --git a/indexers/account-squid/src/model/generated/transfer.model.ts b/indexers/account-squid/src/model/generated/transfer.model.ts deleted file mode 100644 index f4d0986f8..000000000 --- a/indexers/account-squid/src/model/generated/transfer.model.ts +++ /dev/null @@ -1,40 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, ManyToOne as ManyToOne_} from "typeorm" -import * as marshal from "./marshal" -import {Account} from "./account.model" - -@Entity_() -export class Transfer { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("int4", {nullable: false}) - blockNumber!: number - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("text", {nullable: true}) - extrinsicHash!: string | undefined | null - - @Index_() - @ManyToOne_(() => Account, {nullable: true}) - from!: Account - - @Index_() - @ManyToOne_(() => Account, {nullable: true}) - to!: Account - - @Index_() - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - amount!: bigint - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - fee!: bigint -} diff --git a/indexers/account-squid/src/model/index.ts b/indexers/account-squid/src/model/index.ts deleted file mode 100644 index 73bfb2881..000000000 --- a/indexers/account-squid/src/model/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./generated" diff --git a/indexers/account-squid/src/processor.ts b/indexers/account-squid/src/processor.ts deleted file mode 100644 index 24d485132..000000000 --- a/indexers/account-squid/src/processor.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { - DataHandlerContext, - SubstrateBatchProcessor, - SubstrateBatchProcessorFields, - Block as _Block, - BlockHeader as _BlockHeader, - Call as _Call, - Event as _Event, - Extrinsic as _Extrinsic, -} from "@subsquid/substrate-processor"; -import { assertNotNull } from "@subsquid/util-internal"; - -import { events } from "./types"; - -export const processor = new SubstrateBatchProcessor() - .setRpcEndpoint({ - url: assertNotNull(process.env.RPC_ENDPOINT), - rateLimit: 10, - }) - .setBlockRange({ from: 0 }) - .addEvent({ - name: [ - events.balances.balanceSet.v0.name, - events.balances.deposit.v0.name, - events.balances.endowed.v0.name, - events.balances.reserved.v0.name, - events.balances.reserveRepatriated.v0.name, - events.balances.slashed.v0.name, - events.balances.transfer.v0.name, - events.balances.withdraw.v0.name, - events.balances.unreserved.v0.name, - events.balances.burned.v0.name, - events.balances.restored.v0.name, - ], - extrinsic: true, - }) - .addCall({}) - .setFields({ - call: { - name: true, - args: true, - origin: true, - success: true, - error: true, - }, - event: { - name: true, - args: true, - phase: true, - }, - extrinsic: { - hash: true, - fee: true, - }, - block: { - timestamp: true, - }, - }); -// Uncomment to disable RPC ingestion and drastically reduce no of RPC calls -//.useArchiveOnly() - -export type Fields = SubstrateBatchProcessorFields; -export type Block = _Block; -export type BlockHeader = _BlockHeader; -export type Event = _Event; -export type Call = _Call; -export type Extrinsic = _Extrinsic; -export type ProcessorContext = DataHandlerContext; diff --git a/indexers/account-squid/src/types/balances/calls.ts b/indexers/account-squid/src/types/balances/calls.ts deleted file mode 100644 index 906f6aa15..000000000 --- a/indexers/account-squid/src/types/balances/calls.ts +++ /dev/null @@ -1,100 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transferAllowDeath = { - name: 'Balances.transfer_allow_death', - /** - * See [`Pallet::transfer_allow_death`]. - */ - v0: new CallType( - 'Balances.transfer_allow_death', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const forceTransfer = { - name: 'Balances.force_transfer', - /** - * See [`Pallet::force_transfer`]. - */ - v0: new CallType( - 'Balances.force_transfer', - sts.struct({ - source: v0.MultiAddress, - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferKeepAlive = { - name: 'Balances.transfer_keep_alive', - /** - * See [`Pallet::transfer_keep_alive`]. - */ - v0: new CallType( - 'Balances.transfer_keep_alive', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferAll = { - name: 'Balances.transfer_all', - /** - * See [`Pallet::transfer_all`]. - */ - v0: new CallType( - 'Balances.transfer_all', - sts.struct({ - dest: v0.MultiAddress, - keepAlive: sts.boolean(), - }) - ), -} - -export const forceUnreserve = { - name: 'Balances.force_unreserve', - /** - * See [`Pallet::force_unreserve`]. - */ - v0: new CallType( - 'Balances.force_unreserve', - sts.struct({ - who: v0.MultiAddress, - amount: sts.bigint(), - }) - ), -} - -export const upgradeAccounts = { - name: 'Balances.upgrade_accounts', - /** - * See [`Pallet::upgrade_accounts`]. - */ - v0: new CallType( - 'Balances.upgrade_accounts', - sts.struct({ - who: sts.array(() => v0.AccountId32), - }) - ), -} - -export const forceSetBalance = { - name: 'Balances.force_set_balance', - /** - * See [`Pallet::force_set_balance`]. - */ - v0: new CallType( - 'Balances.force_set_balance', - sts.struct({ - who: v0.MultiAddress, - newFree: sts.bigint(), - }) - ), -} diff --git a/indexers/account-squid/src/types/balances/constants.ts b/indexers/account-squid/src/types/balances/constants.ts deleted file mode 100644 index 5cab2c7e3..000000000 --- a/indexers/account-squid/src/types/balances/constants.ts +++ /dev/null @@ -1,59 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const existentialDeposit = { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - */ - v0: new ConstantType( - 'Balances.ExistentialDeposit', - sts.bigint() - ), -} - -export const maxLocks = { - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - */ - v0: new ConstantType( - 'Balances.MaxLocks', - sts.number() - ), -} - -export const maxReserves = { - /** - * The maximum number of named reserves that can exist on an account. - */ - v0: new ConstantType( - 'Balances.MaxReserves', - sts.number() - ), -} - -export const maxHolds = { - /** - * The maximum number of holds that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxHolds', - sts.number() - ), -} - -export const maxFreezes = { - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxFreezes', - sts.number() - ), -} diff --git a/indexers/account-squid/src/types/balances/events.ts b/indexers/account-squid/src/types/balances/events.ts deleted file mode 100644 index da33447db..000000000 --- a/indexers/account-squid/src/types/balances/events.ts +++ /dev/null @@ -1,298 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const endowed = { - name: 'Balances.Endowed', - /** - * An account was created with some free balance. - */ - v0: new EventType( - 'Balances.Endowed', - sts.struct({ - account: v0.AccountId32, - freeBalance: sts.bigint(), - }) - ), -} - -export const dustLost = { - name: 'Balances.DustLost', - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ - v0: new EventType( - 'Balances.DustLost', - sts.struct({ - account: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const transfer = { - name: 'Balances.Transfer', - /** - * Transfer succeeded. - */ - v0: new EventType( - 'Balances.Transfer', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const balanceSet = { - name: 'Balances.BalanceSet', - /** - * A balance was set by root. - */ - v0: new EventType( - 'Balances.BalanceSet', - sts.struct({ - who: v0.AccountId32, - free: sts.bigint(), - }) - ), -} - -export const reserved = { - name: 'Balances.Reserved', - /** - * Some balance was reserved (moved from free to reserved). - */ - v0: new EventType( - 'Balances.Reserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unreserved = { - name: 'Balances.Unreserved', - /** - * Some balance was unreserved (moved from reserved to free). - */ - v0: new EventType( - 'Balances.Unreserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const reserveRepatriated = { - name: 'Balances.ReserveRepatriated', - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ - v0: new EventType( - 'Balances.ReserveRepatriated', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - destinationStatus: v0.BalanceStatus, - }) - ), -} - -export const deposit = { - name: 'Balances.Deposit', - /** - * Some amount was deposited (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Deposit', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const withdraw = { - name: 'Balances.Withdraw', - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Withdraw', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const slashed = { - name: 'Balances.Slashed', - /** - * Some amount was removed from the account (e.g. for misbehavior). - */ - v0: new EventType( - 'Balances.Slashed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const minted = { - name: 'Balances.Minted', - /** - * Some amount was minted into an account. - */ - v0: new EventType( - 'Balances.Minted', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const burned = { - name: 'Balances.Burned', - /** - * Some amount was burned from an account. - */ - v0: new EventType( - 'Balances.Burned', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const suspended = { - name: 'Balances.Suspended', - /** - * Some amount was suspended from an account (it can be restored later). - */ - v0: new EventType( - 'Balances.Suspended', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const restored = { - name: 'Balances.Restored', - /** - * Some amount was restored into an account. - */ - v0: new EventType( - 'Balances.Restored', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const upgraded = { - name: 'Balances.Upgraded', - /** - * An account was upgraded. - */ - v0: new EventType( - 'Balances.Upgraded', - sts.struct({ - who: v0.AccountId32, - }) - ), -} - -export const issued = { - name: 'Balances.Issued', - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ - v0: new EventType( - 'Balances.Issued', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const rescinded = { - name: 'Balances.Rescinded', - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ - v0: new EventType( - 'Balances.Rescinded', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const locked = { - name: 'Balances.Locked', - /** - * Some balance was locked. - */ - v0: new EventType( - 'Balances.Locked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unlocked = { - name: 'Balances.Unlocked', - /** - * Some balance was unlocked. - */ - v0: new EventType( - 'Balances.Unlocked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const frozen = { - name: 'Balances.Frozen', - /** - * Some balance was frozen. - */ - v0: new EventType( - 'Balances.Frozen', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const thawed = { - name: 'Balances.Thawed', - /** - * Some balance was thawed. - */ - v0: new EventType( - 'Balances.Thawed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/account-squid/src/types/balances/storage.ts b/indexers/account-squid/src/types/balances/storage.ts deleted file mode 100644 index 5f4a19212..000000000 --- a/indexers/account-squid/src/types/balances/storage.ts +++ /dev/null @@ -1,253 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const totalIssuance = { - /** - * The total units issued in the system. - */ - v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, -} - -/** - * The total units issued in the system. - */ -export interface TotalIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const inactiveIssuance = { - /** - * The total units of outstanding deactivated balance in the system. - */ - v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, -} - -/** - * The total units of outstanding deactivated balance in the system. - */ -export interface InactiveIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const account = { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ - v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, -} - -/** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountData - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> -} - -export const locks = { - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ - v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, -} - -/** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ -export interface LocksV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BalanceLock[] - get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> -} - -export const reserves = { - /** - * Named reserves on some account balances. - */ - v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, -} - -/** - * Named reserves on some account balances. - */ -export interface ReservesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.ReserveData[] - get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> -} - -export const holds = { - /** - * Holds on account balances. - */ - v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, - /** - * Holds on account balances. - */ - v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, - /** - * Holds on account balances. - */ - v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, -} - -/** - * Holds on account balances. - */ -export interface HoldsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.IdAmount[] - get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.IdAmount[] - get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> - getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.IdAmount[] - get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> - getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> -} - -export const freezes = { - /** - * Freeze locks on account balances. - */ - v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, -} - -/** - * Freeze locks on account balances. - */ -export interface FreezesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Type_152[] - get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> -} diff --git a/indexers/account-squid/src/types/calls.ts b/indexers/account-squid/src/types/calls.ts deleted file mode 100644 index f86459d11..000000000 --- a/indexers/account-squid/src/types/calls.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as system from './system/calls' -export * as timestamp from './timestamp/calls' -export * as subspace from './subspace/calls' -export * as balances from './balances/calls' -export * as utility from './utility/calls' -export * as domains from './domains/calls' -export * as messenger from './messenger/calls' -export * as rewards from './rewards/calls' diff --git a/indexers/account-squid/src/types/constants.ts b/indexers/account-squid/src/types/constants.ts deleted file mode 100644 index 1a3e8c237..000000000 --- a/indexers/account-squid/src/types/constants.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * as system from './system/constants' -export * as timestamp from './timestamp/constants' -export * as subspace from './subspace/constants' -export * as rewards from './rewards/constants' -export * as balances from './balances/constants' -export * as transactionFees from './transaction-fees/constants' -export * as utility from './utility/constants' -export * as domains from './domains/constants' -export * as messenger from './messenger/constants' diff --git a/indexers/account-squid/src/types/domains/calls.ts b/indexers/account-squid/src/types/domains/calls.ts deleted file mode 100644 index 9c96646e2..000000000 --- a/indexers/account-squid/src/types/domains/calls.ts +++ /dev/null @@ -1,221 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), -} - -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), -} - -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), -} - -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), -} - -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), -} - -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), -} - -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), -} - -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), -} - -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} diff --git a/indexers/account-squid/src/types/domains/constants.ts b/indexers/account-squid/src/types/domains/constants.ts deleted file mode 100644 index a26b47666..000000000 --- a/indexers/account-squid/src/types/domains/constants.ts +++ /dev/null @@ -1,213 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), -} diff --git a/indexers/account-squid/src/types/domains/events.ts b/indexers/account-squid/src/types/domains/events.ts deleted file mode 100644 index 0974cf477..000000000 --- a/indexers/account-squid/src/types/domains/events.ts +++ /dev/null @@ -1,235 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/account-squid/src/types/domains/storage.ts b/indexers/account-squid/src/types/domains/storage.ts deleted file mode 100644 index 0fbb2fa84..000000000 --- a/indexers/account-squid/src/types/domains/storage.ts +++ /dev/null @@ -1,1040 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, -} - -/** - * Bundles submitted successfully in current block. - */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, -} - -/** - * Fraud proofs submitted successfully in current block. - */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, -} - -/** - * Stores the next runtime id. - */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, -} - -/** - * Stores the next evm chain id. - */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, -} - -/** - * Indexes operator signing key against OperatorId. - */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, -} - -/** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, -} - -/** - * Share price for the operator pool at the end of Domain epoch. - */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, -} - -/** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, -} - -/** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, -} - -/** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, -} - -/** - * Stores the next domain id. - */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, -} - -/** - * The domain registry - */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, -} - -/** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, -} - -/** - * The head receipt number of each domain - */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, -} - -/** - * The latest confirmed block number of each domain. - */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, -} - -/** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, -} - -/** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, -} - -/** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, -} - -/** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, -} - -/** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, -} - -/** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, -} - -/** - * Storage to hold all the domain's latest confirmed block. - */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, -} - -/** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} diff --git a/indexers/account-squid/src/types/events.ts b/indexers/account-squid/src/types/events.ts deleted file mode 100644 index 8e7e8d88a..000000000 --- a/indexers/account-squid/src/types/events.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as system from './system/events' -export * as subspace from './subspace/events' -export * as rewards from './rewards/events' -export * as balances from './balances/events' -export * as transactionFees from './transaction-fees/events' -export * as utility from './utility/events' -export * as domains from './domains/events' -export * as messenger from './messenger/events' diff --git a/indexers/account-squid/src/types/index.ts b/indexers/account-squid/src/types/index.ts deleted file mode 100644 index 5b659ac4a..000000000 --- a/indexers/account-squid/src/types/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * as v0 from './v0' -export * as v1 from './v1' -export * as v3 from './v3' -export * as events from './events' -export * as calls from './calls' -export * as constants from './constants' -export * as storage from './storage' diff --git a/indexers/account-squid/src/types/messenger/calls.ts b/indexers/account-squid/src/types/messenger/calls.ts deleted file mode 100644 index 748fc2ae0..000000000 --- a/indexers/account-squid/src/types/messenger/calls.ts +++ /dev/null @@ -1,115 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const initiateChannel = { - name: 'Messenger.initiate_channel', - /** - * See [`Pallet::initiate_channel`]. - */ - v0: new CallType( - 'Messenger.initiate_channel', - sts.struct({ - dstChainId: v0.ChainId, - params: v0.InitiateChannelParams, - }) - ), -} - -export const closeChannel = { - name: 'Messenger.close_channel', - /** - * See [`Pallet::close_channel`]. - */ - v0: new CallType( - 'Messenger.close_channel', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - }) - ), -} - -export const relayMessage = { - name: 'Messenger.relay_message', - /** - * See [`Pallet::relay_message`]. - */ - v0: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message`]. - */ - v3: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), -} - -export const relayMessageResponse = { - name: 'Messenger.relay_message_response', - /** - * See [`Pallet::relay_message_response`]. - */ - v0: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message_response`]. - */ - v3: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), -} - -export const updateConsensusChainAllowlist = { - name: 'Messenger.update_consensus_chain_allowlist', - /** - * See [`Pallet::update_consensus_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_consensus_chain_allowlist', - sts.struct({ - update: v3.ChainAllowlistUpdate, - }) - ), -} - -export const initiateDomainUpdateChainAllowlist = { - name: 'Messenger.initiate_domain_update_chain_allowlist', - /** - * See [`Pallet::initiate_domain_update_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.initiate_domain_update_chain_allowlist', - sts.struct({ - domainId: v3.DomainId, - update: v3.ChainAllowlistUpdate, - }) - ), -} - -export const updateDomainAllowlist = { - name: 'Messenger.update_domain_allowlist', - /** - * See [`Pallet::update_domain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_domain_allowlist', - sts.struct({ - updates: v3.DomainAllowlistUpdates, - }) - ), -} diff --git a/indexers/account-squid/src/types/messenger/constants.ts b/indexers/account-squid/src/types/messenger/constants.ts deleted file mode 100644 index e50ab0673..000000000 --- a/indexers/account-squid/src/types/messenger/constants.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const channelReserveFee = { - /** - * Channel reserve fee to open a channel. - */ - v3: new ConstantType( - 'Messenger.ChannelReserveFee', - sts.bigint() - ), -} diff --git a/indexers/account-squid/src/types/messenger/events.ts b/indexers/account-squid/src/types/messenger/events.ts deleted file mode 100644 index c36e8bf2b..000000000 --- a/indexers/account-squid/src/types/messenger/events.ts +++ /dev/null @@ -1,150 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const channelInitiated = { - name: 'Messenger.ChannelInitiated', - /** - * Emits when a channel between two chains is initiated. - */ - v0: new EventType( - 'Messenger.ChannelInitiated', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const channelClosed = { - name: 'Messenger.ChannelClosed', - /** - * Emits when a channel between two chains is closed. - */ - v0: new EventType( - 'Messenger.ChannelClosed', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const channelOpen = { - name: 'Messenger.ChannelOpen', - /** - * Emits when a channel between two chain is open. - */ - v0: new EventType( - 'Messenger.ChannelOpen', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const outboxMessage = { - name: 'Messenger.OutboxMessage', - /** - * Emits when a new message is added to the outbox. - */ - v0: new EventType( - 'Messenger.OutboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const outboxMessageResponse = { - name: 'Messenger.OutboxMessageResponse', - /** - * Emits when a message response is available for Outbox message. - */ - v0: new EventType( - 'Messenger.OutboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const outboxMessageResult = { - name: 'Messenger.OutboxMessageResult', - /** - * Emits outbox message result. - */ - v0: new EventType( - 'Messenger.OutboxMessageResult', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: v0.OutboxMessageResult, - }) - ), -} - -export const inboxMessage = { - name: 'Messenger.InboxMessage', - /** - * Emits when a new inbox message is validated and added to Inbox. - */ - v0: new EventType( - 'Messenger.InboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const inboxMessageResponse = { - name: 'Messenger.InboxMessageResponse', - /** - * Emits when a message response is available for Inbox message. - */ - v0: new EventType( - 'Messenger.InboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} diff --git a/indexers/account-squid/src/types/messenger/storage.ts b/indexers/account-squid/src/types/messenger/storage.ts deleted file mode 100644 index b1dbfcf28..000000000 --- a/indexers/account-squid/src/types/messenger/storage.ts +++ /dev/null @@ -1,316 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const nextChannelId = { - /** - * Stores the next channel id for a foreign chain. - */ - v0: new StorageType('Messenger.NextChannelId', 'Default', [v0.ChainId], sts.bigint()) as NextChannelIdV0, -} - -/** - * Stores the next channel id for a foreign chain. - */ -export interface NextChannelIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: v0.ChainId): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.ChainId[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.ChainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.ChainId): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> -} - -export const channels = { - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v0: new StorageType('Messenger.Channels', 'Optional', [v0.ChainId, sts.bigint()], v0.Channel) as ChannelsV0, - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v3: new StorageType('Messenger.Channels', 'Optional', [v3.ChainId, sts.bigint()], v3.Channel) as ChannelsV3, -} - -/** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ -export interface ChannelsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.ChainId, key2: bigint): Promise<(v0.Channel | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint][]): Promise<(v0.Channel | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId, key2: bigint): Promise<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[v0.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId, key2: bigint): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> -} - -/** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ -export interface ChannelsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v3.ChainId, key2: bigint): Promise<(v3.Channel | undefined)> - getMany(block: Block, keys: [v3.ChainId, bigint][]): Promise<(v3.Channel | undefined)[]> - getKeys(block: Block): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId, key2: bigint): Promise<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[v3.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId, key2: bigint): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> -} - -export const inbox = { - /** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ - v0: new StorageType('Messenger.Inbox', 'Optional', [], v0.Message) as InboxV0, -} - -/** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ -export interface InboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> -} - -export const inboxFee = { - /** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ - v0: new StorageType('Messenger.InboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as InboxFeeV0, -} - -/** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ -export interface InboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> -} - -export const outboxFee = { - /** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ - v0: new StorageType('Messenger.OutboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as OutboxFeeV0, -} - -/** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ -export interface OutboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> -} - -export const inboxResponses = { - /** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ - v0: new StorageType('Messenger.InboxResponses', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as InboxResponsesV0, -} - -/** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ -export interface InboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> -} - -export const counterForInboxResponses = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForInboxResponses', 'Default', [], sts.number()) as CounterForInboxResponsesV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForInboxResponsesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const outbox = { - /** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ - v0: new StorageType('Messenger.Outbox', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as OutboxV0, -} - -/** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ -export interface OutboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> -} - -export const counterForOutbox = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForOutbox', 'Default', [], sts.number()) as CounterForOutboxV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForOutboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const outboxResponses = { - /** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ - v0: new StorageType('Messenger.OutboxResponses', 'Optional', [], v0.Message) as OutboxResponsesV0, -} - -/** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ -export interface OutboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> -} - -export const blockMessages = { - /** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ - v0: new StorageType('Messenger.BlockMessages', 'Optional', [], v0.BlockMessages) as BlockMessagesV0, -} - -/** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ -export interface BlockMessagesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.BlockMessages | undefined)> -} - -export const chainAllowlist = { - /** - * An allowlist of chains that can open channel with this chain. - */ - v3: new StorageType('Messenger.ChainAllowlist', 'Default', [], sts.array(() => v3.ChainId)) as ChainAllowlistV3, -} - -/** - * An allowlist of chains that can open channel with this chain. - */ -export interface ChainAllowlistV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.ChainId[] - get(block: Block): Promise<(v3.ChainId[] | undefined)> -} - -export const domainChainAllowlistUpdate = { - /** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ - v3: new StorageType('Messenger.DomainChainAllowlistUpdate', 'Optional', [v3.DomainId], v3.DomainAllowlistUpdates) as DomainChainAllowlistUpdateV3, -} - -/** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ -export interface DomainChainAllowlistUpdateV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v3.DomainId): Promise<(v3.DomainAllowlistUpdates | undefined)> - getMany(block: Block, keys: v3.DomainId[]): Promise<(v3.DomainAllowlistUpdates | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairs(block: Block, key: v3.DomainId): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> -} diff --git a/indexers/account-squid/src/types/rewards/calls.ts b/indexers/account-squid/src/types/rewards/calls.ts deleted file mode 100644 index b8486afff..000000000 --- a/indexers/account-squid/src/types/rewards/calls.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const updateIssuanceParams = { - name: 'Rewards.update_issuance_params', - /** - * See [`Pallet::update_issuance_params`]. - */ - v3: new CallType( - 'Rewards.update_issuance_params', - sts.struct({ - proposerSubsidyPoints: sts.array(() => v3.RewardPoint), - voterSubsidyPoints: sts.array(() => v3.RewardPoint), - }) - ), -} diff --git a/indexers/account-squid/src/types/rewards/constants.ts b/indexers/account-squid/src/types/rewards/constants.ts deleted file mode 100644 index e1004ecc1..000000000 --- a/indexers/account-squid/src/types/rewards/constants.ts +++ /dev/null @@ -1,61 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const blockReward = { - /** - * Fixed reward for block producer. - */ - v0: new ConstantType( - 'Rewards.BlockReward', - sts.bigint() - ), -} - -export const voteReward = { - /** - * Fixed reward for voter. - */ - v0: new ConstantType( - 'Rewards.VoteReward', - sts.bigint() - ), -} - -export const avgBlockspaceUsageNumBlocks = { - /** - * Number of blocks over which to compute average blockspace usage - */ - v3: new ConstantType( - 'Rewards.AvgBlockspaceUsageNumBlocks', - sts.number() - ), -} - -export const transactionByteFee = { - /** - * Cost of one byte of blockspace - */ - v3: new ConstantType( - 'Rewards.TransactionByteFee', - sts.bigint() - ), -} - -export const maxRewardPoints = { - /** - * Max number of reward points - */ - v3: new ConstantType( - 'Rewards.MaxRewardPoints', - sts.number() - ), -} - -export const proposerTaxOnVotes = { - /** - * Tax of the proposer on vote rewards - */ - v3: new ConstantType( - 'Rewards.ProposerTaxOnVotes', - sts.tuple(() => [sts.number(), sts.number()]) - ), -} diff --git a/indexers/account-squid/src/types/rewards/events.ts b/indexers/account-squid/src/types/rewards/events.ts deleted file mode 100644 index 5b01a1694..000000000 --- a/indexers/account-squid/src/types/rewards/events.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockReward = { - name: 'Rewards.BlockReward', - /** - * Issued reward for the block author. - */ - v0: new EventType( - 'Rewards.BlockReward', - sts.struct({ - blockAuthor: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} - -export const voteReward = { - name: 'Rewards.VoteReward', - /** - * Issued reward for the voter. - */ - v0: new EventType( - 'Rewards.VoteReward', - sts.struct({ - voter: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} diff --git a/indexers/account-squid/src/types/rewards/storage.ts b/indexers/account-squid/src/types/rewards/storage.ts deleted file mode 100644 index 971093421..000000000 --- a/indexers/account-squid/src/types/rewards/storage.ts +++ /dev/null @@ -1,82 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const avgBlockspaceUsage = { - /** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ - v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, -} - -/** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ -export interface AvgBlockspaceUsageV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const rewardsEnabled = { - /** - * Whether rewards are enabled - */ - v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, -} - -/** - * Whether rewards are enabled - */ -export interface RewardsEnabledV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const remainingIssuance = { - /** - * Tokens left to issue to farmers at any given time - */ - v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, -} - -/** - * Tokens left to issue to farmers at any given time - */ -export interface RemainingIssuanceV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const proposerSubsidyPoints = { - /** - * Block proposer subsidy parameters - */ - v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, -} - -/** - * Block proposer subsidy parameters - */ -export interface ProposerSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} - -export const voterSubsidyPoints = { - /** - * Voter subsidy parameters - */ - v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, -} - -/** - * Voter subsidy parameters - */ -export interface VoterSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} diff --git a/indexers/account-squid/src/types/storage.ts b/indexers/account-squid/src/types/storage.ts deleted file mode 100644 index cf9914baa..000000000 --- a/indexers/account-squid/src/types/storage.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as system from './system/storage' -export * as timestamp from './timestamp/storage' -export * as subspace from './subspace/storage' -export * as balances from './balances/storage' -export * as transactionFees from './transaction-fees/storage' -export * as domains from './domains/storage' -export * as messenger from './messenger/storage' -export * as rewards from './rewards/storage' diff --git a/indexers/account-squid/src/types/subspace/calls.ts b/indexers/account-squid/src/types/subspace/calls.ts deleted file mode 100644 index add70afae..000000000 --- a/indexers/account-squid/src/types/subspace/calls.ts +++ /dev/null @@ -1,79 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const reportEquivocation = { - name: 'Subspace.report_equivocation', - /** - * See [`Pallet::report_equivocation`]. - */ - v0: new CallType( - 'Subspace.report_equivocation', - sts.struct({ - equivocationProof: v0.EquivocationProof, - }) - ), -} - -export const storeSegmentHeaders = { - name: 'Subspace.store_segment_headers', - /** - * See [`Pallet::store_segment_headers`]. - */ - v0: new CallType( - 'Subspace.store_segment_headers', - sts.struct({ - segmentHeaders: sts.array(() => v0.SegmentHeader), - }) - ), -} - -export const enableSolutionRangeAdjustment = { - name: 'Subspace.enable_solution_range_adjustment', - /** - * See [`Pallet::enable_solution_range_adjustment`]. - */ - v0: new CallType( - 'Subspace.enable_solution_range_adjustment', - sts.struct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }) - ), -} - -export const vote = { - name: 'Subspace.vote', - /** - * See [`Pallet::vote`]. - */ - v0: new CallType( - 'Subspace.vote', - sts.struct({ - signedVote: v0.SignedVote, - }) - ), -} - -export const enableRewardsAt = { - name: 'Subspace.enable_rewards_at', - /** - * See [`Pallet::enable_rewards_at`]. - */ - v0: new CallType( - 'Subspace.enable_rewards_at', - sts.struct({ - enableRewardsAt: v0.EnableRewardsAt, - }) - ), -} - -export const enableAuthoringByAnyone = { - name: 'Subspace.enable_authoring_by_anyone', - /** - * See [`Pallet::enable_authoring_by_anyone`]. - */ - v0: new CallType( - 'Subspace.enable_authoring_by_anyone', - sts.unit() - ), -} diff --git a/indexers/account-squid/src/types/subspace/constants.ts b/indexers/account-squid/src/types/subspace/constants.ts deleted file mode 100644 index 555317b21..000000000 --- a/indexers/account-squid/src/types/subspace/constants.ts +++ /dev/null @@ -1,154 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockAuthoringDelay = { - /** - * Number of slots between slot arrival and when corresponding block can be produced. - * - * Practically this means future proof of time proof needs to be revealed this many slots - * ahead before block can be authored even though solution is available before that. - */ - v0: new ConstantType( - 'Subspace.BlockAuthoringDelay', - v0.Slot - ), -} - -export const potEntropyInjectionInterval = { - /** - * Interval, in blocks, between blockchain entropy injection into proof of time chain. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionInterval', - sts.number() - ), -} - -export const potEntropyInjectionLookbackDepth = { - /** - * Interval, in entropy injection intervals, where to take entropy for injection from. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionLookbackDepth', - sts.number() - ), -} - -export const potEntropyInjectionDelay = { - /** - * Delay after block, in slots, when entropy injection takes effect. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionDelay', - v0.Slot - ), -} - -export const eraDuration = { - /** - * The amount of time, in blocks, that each era should last. - * NOTE: Currently it is not possible to change the era duration after - * the chain has started. Attempting to do so will brick block production. - */ - v0: new ConstantType( - 'Subspace.EraDuration', - sts.number() - ), -} - -export const initialSolutionRange = { - /** - * Initial solution range used for challenges during the very first era. - */ - v0: new ConstantType( - 'Subspace.InitialSolutionRange', - sts.bigint() - ), -} - -export const slotProbability = { - /** - * How often in slots slots (on average, not counting collisions) will have a block. - * - * Expressed as a rational where the first member of the tuple is the - * numerator and the second is the denominator. The rational should - * represent a value between 0 and 1. - */ - v0: new ConstantType( - 'Subspace.SlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const confirmationDepthK = { - /** - * Depth `K` after which a block enters the recorded history (a global constant, as opposed - * to the client-dependent transaction confirmation depth `k`). - */ - v0: new ConstantType( - 'Subspace.ConfirmationDepthK', - sts.number() - ), -} - -export const recentSegments = { - /** - * Number of latest archived segments that are considered "recent history". - */ - v0: new ConstantType( - 'Subspace.RecentSegments', - v0.HistorySize - ), -} - -export const recentHistoryFraction = { - /** - * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. - */ - v0: new ConstantType( - 'Subspace.RecentHistoryFraction', - sts.tuple(() => [v0.HistorySize, v0.HistorySize]) - ), -} - -export const minSectorLifetime = { - /** - * Minimum lifetime of a plotted sector, measured in archived segment. - */ - v0: new ConstantType( - 'Subspace.MinSectorLifetime', - v0.HistorySize - ), -} - -export const expectedVotesPerBlock = { - /** - * Number of votes expected per block. - * - * This impacts solution range for votes in consensus. - */ - v0: new ConstantType( - 'Subspace.ExpectedVotesPerBlock', - sts.number() - ), -} - -export const maxPiecesInSector = { - /** - * How many pieces one sector is supposed to contain (max) - */ - v0: new ConstantType( - 'Subspace.MaxPiecesInSector', - sts.number() - ), -} - -export const blockSlotCount = { - /** - * Maximum number of block number to block slot mappings to keep (oldest pruned first). - */ - v3: new ConstantType( - 'Subspace.BlockSlotCount', - sts.number() - ), -} diff --git a/indexers/account-squid/src/types/subspace/events.ts b/indexers/account-squid/src/types/subspace/events.ts deleted file mode 100644 index 65427a471..000000000 --- a/indexers/account-squid/src/types/subspace/events.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const segmentHeaderStored = { - name: 'Subspace.SegmentHeaderStored', - /** - * Segment header was stored in blockchain history. - */ - v0: new EventType( - 'Subspace.SegmentHeaderStored', - sts.struct({ - segmentHeader: v0.SegmentHeader, - }) - ), -} - -export const farmerVote = { - name: 'Subspace.FarmerVote', - /** - * Farmer vote. - */ - v0: new EventType( - 'Subspace.FarmerVote', - sts.struct({ - publicKey: v0.Public, - rewardAddress: v0.AccountId32, - height: sts.number(), - parentHash: v0.H256, - }) - ), -} diff --git a/indexers/account-squid/src/types/subspace/storage.ts b/indexers/account-squid/src/types/subspace/storage.ts deleted file mode 100644 index 8c1220cc5..000000000 --- a/indexers/account-squid/src/types/subspace/storage.ts +++ /dev/null @@ -1,390 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const genesisSlot = { - /** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ - v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, -} - -/** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ -export interface GenesisSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const currentSlot = { - /** - * Current slot number. - */ - v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, -} - -/** - * Current slot number. - */ -export interface CurrentSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const potSlotIterations = { - /** - * Number of iterations for proof of time per slot - */ - v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, -} - -/** - * Number of iterations for proof of time per slot - */ -export interface PotSlotIterationsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.NonZeroU32 | undefined)> -} - -export const solutionRanges = { - /** - * Solution ranges used for challenges. - */ - v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, -} - -/** - * Solution ranges used for challenges. - */ -export interface SolutionRangesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.SolutionRanges - get(block: Block): Promise<(v0.SolutionRanges | undefined)> -} - -export const shouldAdjustSolutionRange = { - /** - * Storage to check if the solution range is to be adjusted for next era - */ - v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, -} - -/** - * Storage to check if the solution range is to be adjusted for next era - */ -export interface ShouldAdjustSolutionRangeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const nextSolutionRangeOverride = { - /** - * Override solution range during next update - */ - v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, -} - -/** - * Override solution range during next update - */ -export interface NextSolutionRangeOverrideV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> -} - -export const eraStartSlot = { - /** - * Slot at which current era started. - */ - v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, -} - -/** - * Slot at which current era started. - */ -export interface EraStartSlotV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const blockList = { - /** - * A set of blocked farmers keyed by their public key. - */ - v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, -} - -/** - * A set of blocked farmers keyed by their public key. - */ -export interface BlockListV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.Public): Promise<(null | undefined)> - getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.Public): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable - getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> -} - -export const segmentCommitment = { - /** - * Mapping from segment index to corresponding segment commitment of contained records. - */ - v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, -} - -/** - * Mapping from segment index to corresponding segment commitment of contained records. - */ -export interface SegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> - getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.SegmentIndex): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable - getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> -} - -export const counterForSegmentCommitment = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForSegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const didProcessSegmentHeaders = { - /** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, -} - -/** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ -export interface DidProcessSegmentHeadersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const parentVoteVerificationData = { - /** - * Storage of previous vote verification data, updated on each block during finalization. - */ - v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, -} - -/** - * Storage of previous vote verification data, updated on each block during finalization. - */ -export interface ParentVoteVerificationDataV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.VoteVerificationData | undefined)> -} - -export const parentBlockAuthorInfo = { - /** - * Parent block author information. - */ - v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, -} - -/** - * Parent block author information. - */ -export interface ParentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> -} - -export const enableRewards = { - /** - * Enable rewards since specified block number. - */ - v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, -} - -/** - * Enable rewards since specified block number. - */ -export interface EnableRewardsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const enableRewardsBelowSolutionRange = { - /** - * Enable rewards when solution range is below this threshold. - */ - v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, -} - -/** - * Enable rewards when solution range is below this threshold. - */ -export interface EnableRewardsBelowSolutionRangeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(bigint | undefined)> -} - -export const currentBlockAuthorInfo = { - /** - * Temporary value (cleared at block finalization) with block author information. - */ - v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, -} - -/** - * Temporary value (cleared at block finalization) with block author information. - */ -export interface CurrentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> -} - -export const parentBlockVoters = { - /** - * Voters in the parent block (set at the end of the block with current values). - */ - v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, -} - -/** - * Voters in the parent block (set at the end of the block with current values). - */ -export interface ParentBlockVotersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const currentBlockVoters = { - /** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ - v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, -} - -/** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ -export interface CurrentBlockVotersV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const potEntropy = { - /** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ - v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, -} - -/** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ -export interface PotEntropyV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v0.PotEntropyValue][] - get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> -} - -export const blockRandomness = { - /** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ - v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, -} - -/** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ -export interface BlockRandomnessV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Randomness | undefined)> -} - -export const allowAuthoringByAnyone = { - /** - * Allow block authoring by anyone or just root. - */ - v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, -} - -/** - * Allow block authoring by anyone or just root. - */ -export interface AllowAuthoringByAnyoneV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const rootPlotPublicKey = { - /** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ - v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, -} - -/** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ -export interface RootPlotPublicKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Public | undefined)> -} - -export const blockSlots = { - /** - * Bounded mapping from block number to slot - */ - v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, -} - -/** - * Bounded mapping from block number to slot - */ -export interface BlockSlotsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v3.Slot][] - get(block: Block): Promise<([number, v3.Slot][] | undefined)> -} diff --git a/indexers/account-squid/src/types/support.ts b/indexers/account-squid/src/types/support.ts deleted file mode 100644 index 456dfc2fb..000000000 --- a/indexers/account-squid/src/types/support.ts +++ /dev/null @@ -1,142 +0,0 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' -import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' -import assert from 'assert' - - -export {sts, Bytes, BitSequence, Option, Result} - - -export interface RuntimeCtx { - _runtime: Runtime -} - - -export interface Block extends RuntimeCtx { - hash: Bytes - height: number -} - - -interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } -} - - -export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } -} - - -export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } -} - - -export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } -} diff --git a/indexers/account-squid/src/types/system/calls.ts b/indexers/account-squid/src/types/system/calls.ts deleted file mode 100644 index 24f23464e..000000000 --- a/indexers/account-squid/src/types/system/calls.ts +++ /dev/null @@ -1,146 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const remark = { - name: 'System.remark', - /** - * See [`Pallet::remark`]. - */ - v0: new CallType( - 'System.remark', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const setHeapPages = { - name: 'System.set_heap_pages', - /** - * See [`Pallet::set_heap_pages`]. - */ - v0: new CallType( - 'System.set_heap_pages', - sts.struct({ - pages: sts.bigint(), - }) - ), -} - -export const setCode = { - name: 'System.set_code', - /** - * See [`Pallet::set_code`]. - */ - v0: new CallType( - 'System.set_code', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setCodeWithoutChecks = { - name: 'System.set_code_without_checks', - /** - * See [`Pallet::set_code_without_checks`]. - */ - v0: new CallType( - 'System.set_code_without_checks', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setStorage = { - name: 'System.set_storage', - /** - * See [`Pallet::set_storage`]. - */ - v0: new CallType( - 'System.set_storage', - sts.struct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }) - ), -} - -export const killStorage = { - name: 'System.kill_storage', - /** - * See [`Pallet::kill_storage`]. - */ - v0: new CallType( - 'System.kill_storage', - sts.struct({ - keys: sts.array(() => sts.bytes()), - }) - ), -} - -export const killPrefix = { - name: 'System.kill_prefix', - /** - * See [`Pallet::kill_prefix`]. - */ - v0: new CallType( - 'System.kill_prefix', - sts.struct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }) - ), -} - -export const remarkWithEvent = { - name: 'System.remark_with_event', - /** - * See [`Pallet::remark_with_event`]. - */ - v0: new CallType( - 'System.remark_with_event', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const authorizeUpgrade = { - name: 'System.authorize_upgrade', - /** - * See [`Pallet::authorize_upgrade`]. - */ - v0: new CallType( - 'System.authorize_upgrade', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const authorizeUpgradeWithoutChecks = { - name: 'System.authorize_upgrade_without_checks', - /** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ - v0: new CallType( - 'System.authorize_upgrade_without_checks', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const applyAuthorizedUpgrade = { - name: 'System.apply_authorized_upgrade', - /** - * See [`Pallet::apply_authorized_upgrade`]. - */ - v0: new CallType( - 'System.apply_authorized_upgrade', - sts.struct({ - code: sts.bytes(), - }) - ), -} diff --git a/indexers/account-squid/src/types/system/constants.ts b/indexers/account-squid/src/types/system/constants.ts deleted file mode 100644 index 653ab1df2..000000000 --- a/indexers/account-squid/src/types/system/constants.ts +++ /dev/null @@ -1,66 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockWeights = { - /** - * Block & extrinsics weights: base values and limits. - */ - v0: new ConstantType( - 'System.BlockWeights', - v0.BlockWeights - ), -} - -export const blockLength = { - /** - * The maximum length of a block (in bytes). - */ - v0: new ConstantType( - 'System.BlockLength', - v0.BlockLength - ), -} - -export const blockHashCount = { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - */ - v0: new ConstantType( - 'System.BlockHashCount', - sts.number() - ), -} - -export const dbWeight = { - /** - * The weight of runtime database operations the runtime can invoke. - */ - v0: new ConstantType( - 'System.DbWeight', - v0.RuntimeDbWeight - ), -} - -export const version = { - /** - * Get the chain's current version. - */ - v0: new ConstantType( - 'System.Version', - v0.RuntimeVersion - ), -} - -export const ss58Prefix = { - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - */ - v0: new ConstantType( - 'System.SS58Prefix', - sts.number() - ), -} diff --git a/indexers/account-squid/src/types/system/events.ts b/indexers/account-squid/src/types/system/events.ts deleted file mode 100644 index 2c8c5731b..000000000 --- a/indexers/account-squid/src/types/system/events.ts +++ /dev/null @@ -1,94 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const extrinsicSuccess = { - name: 'System.ExtrinsicSuccess', - /** - * An extrinsic completed successfully. - */ - v0: new EventType( - 'System.ExtrinsicSuccess', - sts.struct({ - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const extrinsicFailed = { - name: 'System.ExtrinsicFailed', - /** - * An extrinsic failed. - */ - v0: new EventType( - 'System.ExtrinsicFailed', - sts.struct({ - dispatchError: v0.DispatchError, - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const codeUpdated = { - name: 'System.CodeUpdated', - /** - * `:code` was updated. - */ - v0: new EventType( - 'System.CodeUpdated', - sts.unit() - ), -} - -export const newAccount = { - name: 'System.NewAccount', - /** - * A new account was created. - */ - v0: new EventType( - 'System.NewAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const killedAccount = { - name: 'System.KilledAccount', - /** - * An account was reaped. - */ - v0: new EventType( - 'System.KilledAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const remarked = { - name: 'System.Remarked', - /** - * On on-chain remark happened. - */ - v0: new EventType( - 'System.Remarked', - sts.struct({ - sender: v0.AccountId32, - hash: v0.H256, - }) - ), -} - -export const upgradeAuthorized = { - name: 'System.UpgradeAuthorized', - /** - * An upgrade was authorized. - */ - v0: new EventType( - 'System.UpgradeAuthorized', - sts.struct({ - codeHash: v0.H256, - checkVersion: sts.boolean(), - }) - ), -} diff --git a/indexers/account-squid/src/types/system/storage.ts b/indexers/account-squid/src/types/system/storage.ts deleted file mode 100644 index ff620ea64..000000000 --- a/indexers/account-squid/src/types/system/storage.ts +++ /dev/null @@ -1,363 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const account = { - /** - * The full account information for a particular account ID. - */ - v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, -} - -/** - * The full account information for a particular account ID. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountInfo - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountInfo | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> -} - -export const extrinsicCount = { - /** - * Total extrinsics count for the current block. - */ - v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, -} - -/** - * Total extrinsics count for the current block. - */ -export interface ExtrinsicCountV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockWeight = { - /** - * The current weight for the block. - */ - v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, -} - -/** - * The current weight for the block. - */ -export interface BlockWeightV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.PerDispatchClass - get(block: Block): Promise<(v0.PerDispatchClass | undefined)> -} - -export const allExtrinsicsLen = { - /** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ - v0: new StorageType('System.AllExtrinsicsLen', 'Optional', [], sts.number()) as AllExtrinsicsLenV0, -} - -/** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ -export interface AllExtrinsicsLenV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockHash = { - /** - * Map of block numbers to block hashes. - */ - v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, -} - -/** - * Map of block numbers to block hashes. - */ -export interface BlockHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block, key: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> -} - -export const extrinsicData = { - /** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ - v0: new StorageType('System.ExtrinsicData', 'Default', [sts.number()], sts.bytes()) as ExtrinsicDataV0, -} - -/** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ -export interface ExtrinsicDataV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: number): Promise<(Bytes | undefined)> - getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (Bytes | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (Bytes | undefined)][]> -} - -export const number = { - /** - * The current block number being processed. Set by `execute_block`. - */ - v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, -} - -/** - * The current block number being processed. Set by `execute_block`. - */ -export interface NumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const parentHash = { - /** - * Hash of the previous block. - */ - v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, -} - -/** - * Hash of the previous block. - */ -export interface ParentHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise<(v0.H256 | undefined)> -} - -export const digest = { - /** - * Digest of the current block, also part of the block header. - */ - v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, -} - -/** - * Digest of the current block, also part of the block header. - */ -export interface DigestV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Digest - get(block: Block): Promise<(v0.Digest | undefined)> -} - -export const events = { - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v0: new StorageType('System.Events', 'Default', [], sts.array(() => v0.EventRecord)) as EventsV0, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v1: new StorageType('System.Events', 'Default', [], sts.array(() => v1.EventRecord)) as EventsV1, -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.EventRecord[] - get(block: Block): Promise<(v0.EventRecord[] | undefined)> -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.EventRecord[] - get(block: Block): Promise<(v1.EventRecord[] | undefined)> -} - -export const eventCount = { - /** - * The number of events in the `Events` list. - */ - v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, -} - -/** - * The number of events in the `Events` list. - */ -export interface EventCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const eventTopics = { - /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ - v0: new StorageType('System.EventTopics', 'Default', [v0.H256], sts.array(() => sts.tuple(() => [sts.number(), sts.number()]))) as EventTopicsV0, -} - -/** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ -export interface EventTopicsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, number][] - get(block: Block, key: v0.H256): Promise<([number, number][] | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> -} - -export const lastRuntimeUpgrade = { - /** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ - v0: new StorageType('System.LastRuntimeUpgrade', 'Optional', [], v0.LastRuntimeUpgradeInfo) as LastRuntimeUpgradeV0, -} - -/** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ -export interface LastRuntimeUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.LastRuntimeUpgradeInfo | undefined)> -} - -export const upgradedToU32RefCount = { - /** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ - v0: new StorageType('System.UpgradedToU32RefCount', 'Default', [], sts.boolean()) as UpgradedToU32RefCountV0, -} - -/** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ -export interface UpgradedToU32RefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const upgradedToTripleRefCount = { - /** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ - v0: new StorageType('System.UpgradedToTripleRefCount', 'Default', [], sts.boolean()) as UpgradedToTripleRefCountV0, -} - -/** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ -export interface UpgradedToTripleRefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const executionPhase = { - /** - * The execution phase of the block. - */ - v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, -} - -/** - * The execution phase of the block. - */ -export interface ExecutionPhaseV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Phase | undefined)> -} - -export const authorizedUpgrade = { - /** - * `Some` if a code upgrade has been authorized. - */ - v0: new StorageType('System.AuthorizedUpgrade', 'Optional', [], v0.CodeUpgradeAuthorization) as AuthorizedUpgradeV0, -} - -/** - * `Some` if a code upgrade has been authorized. - */ -export interface AuthorizedUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CodeUpgradeAuthorization | undefined)> -} diff --git a/indexers/account-squid/src/types/timestamp/calls.ts b/indexers/account-squid/src/types/timestamp/calls.ts deleted file mode 100644 index 60a975536..000000000 --- a/indexers/account-squid/src/types/timestamp/calls.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' - -export const set = { - name: 'Timestamp.set', - /** - * See [`Pallet::set`]. - */ - v0: new CallType( - 'Timestamp.set', - sts.struct({ - now: sts.bigint(), - }) - ), -} diff --git a/indexers/account-squid/src/types/timestamp/constants.ts b/indexers/account-squid/src/types/timestamp/constants.ts deleted file mode 100644 index 09884d72c..000000000 --- a/indexers/account-squid/src/types/timestamp/constants.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const minimumPeriod = { - /** - * The minimum period between blocks. - * - * Be aware that this is different to the *expected* period that the block production - * apparatus provides. Your chosen consensus system will generally work with this to - * determine a sensible block time. For example, in the Aura pallet it will be double this - * period on default settings. - */ - v0: new ConstantType( - 'Timestamp.MinimumPeriod', - sts.bigint() - ), -} diff --git a/indexers/account-squid/src/types/timestamp/storage.ts b/indexers/account-squid/src/types/timestamp/storage.ts deleted file mode 100644 index 1bf820c09..000000000 --- a/indexers/account-squid/src/types/timestamp/storage.ts +++ /dev/null @@ -1,39 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' - -export const now = { - /** - * The current time for the current block. - */ - v0: new StorageType('Timestamp.Now', 'Default', [], sts.bigint()) as NowV0, -} - -/** - * The current time for the current block. - */ -export interface NowV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const didUpdate = { - /** - * Whether the timestamp has been updated in this block. - * - * This value is updated to `true` upon successful submission of a timestamp by a node. - * It is then checked at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Timestamp.DidUpdate', 'Default', [], sts.boolean()) as DidUpdateV0, -} - -/** - * Whether the timestamp has been updated in this block. - * - * This value is updated to `true` upon successful submission of a timestamp by a node. - * It is then checked at the end of each block execution in the `on_finalize` hook. - */ -export interface DidUpdateV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} diff --git a/indexers/account-squid/src/types/transaction-fees/constants.ts b/indexers/account-squid/src/types/transaction-fees/constants.ts deleted file mode 100644 index 60de86b39..000000000 --- a/indexers/account-squid/src/types/transaction-fees/constants.ts +++ /dev/null @@ -1,43 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const minReplicationFactor = { - /** - * Minimum desired number of replicas of the blockchain to be stored by the network, - * impacts storage fees. - */ - v0: new ConstantType( - 'TransactionFees.MinReplicationFactor', - sts.number() - ), -} - -export const creditSupply = { - /** - * How many credits there is in circulation. - */ - v0: new ConstantType( - 'TransactionFees.CreditSupply', - sts.bigint() - ), -} - -export const totalSpacePledged = { - /** - * How much space there is on the network. - */ - v0: new ConstantType( - 'TransactionFees.TotalSpacePledged', - sts.bigint() - ), -} - -export const blockchainHistorySize = { - /** - * How big is the history of the blockchain in archived state (thus includes erasure - * coding, but not replication). - */ - v0: new ConstantType( - 'TransactionFees.BlockchainHistorySize', - sts.bigint() - ), -} diff --git a/indexers/account-squid/src/types/transaction-fees/events.ts b/indexers/account-squid/src/types/transaction-fees/events.ts deleted file mode 100644 index 4726ccd18..000000000 --- a/indexers/account-squid/src/types/transaction-fees/events.ts +++ /dev/null @@ -1,54 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockFees = { - name: 'TransactionFees.BlockFees', - /** - * Storage fees. - */ - v0: new EventType( - 'TransactionFees.BlockFees', - sts.struct({ - /** - * Block author that received the fees. - */ - who: v0.AccountId32, - /** - * Amount of collected storage fees. - */ - storage: sts.bigint(), - /** - * Amount of collected compute fees. - */ - compute: sts.bigint(), - /** - * Amount of collected tips. - */ - tips: sts.bigint(), - }) - ), -} - -export const burnedBlockFees = { - name: 'TransactionFees.BurnedBlockFees', - /** - * Fees burned due to equivocated block author. - */ - v0: new EventType( - 'TransactionFees.BurnedBlockFees', - sts.struct({ - /** - * Amount of burned storage fees. - */ - storage: sts.bigint(), - /** - * Amount of burned compute fees. - */ - compute: sts.bigint(), - /** - * Amount of burned tips. - */ - tips: sts.bigint(), - }) - ), -} diff --git a/indexers/account-squid/src/types/transaction-fees/storage.ts b/indexers/account-squid/src/types/transaction-fees/storage.ts deleted file mode 100644 index 34c003453..000000000 --- a/indexers/account-squid/src/types/transaction-fees/storage.ts +++ /dev/null @@ -1,86 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transactionByteFee = { - /** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ - v0: new StorageType('TransactionFees.TransactionByteFee', 'Default', [], v0.BlockTransactionByteFee) as TransactionByteFeeV0, -} - -/** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ -export interface TransactionByteFeeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BlockTransactionByteFee - get(block: Block): Promise<(v0.BlockTransactionByteFee | undefined)> -} - -export const isDuringBlockExecution = { - /** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ - v0: new StorageType('TransactionFees.IsDuringBlockExecution', 'Default', [], sts.boolean()) as IsDuringBlockExecutionV0, -} - -/** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ -export interface IsDuringBlockExecutionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const blockAuthor = { - /** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.BlockAuthor', 'Optional', [], v0.AccountId32) as BlockAuthorV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ -export interface BlockAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.AccountId32 | undefined)> -} - -export const collectedBlockFees = { - /** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.CollectedBlockFees', 'Optional', [], v0.CollectedFees) as CollectedBlockFeesV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ -export interface CollectedBlockFeesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CollectedFees | undefined)> -} diff --git a/indexers/account-squid/src/types/utility/calls.ts b/indexers/account-squid/src/types/utility/calls.ts deleted file mode 100644 index 1b482cb82..000000000 --- a/indexers/account-squid/src/types/utility/calls.ts +++ /dev/null @@ -1,199 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const batch = { - name: 'Utility.batch', - /** - * See [`Pallet::batch`]. - */ - v0: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::batch`]. - */ - v1: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::batch`]. - */ - v3: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), -} - -export const asDerivative = { - name: 'Utility.as_derivative', - /** - * See [`Pallet::as_derivative`]. - */ - v0: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v0.Call, - }) - ), - /** - * See [`Pallet::as_derivative`]. - */ - v1: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v1.Call, - }) - ), - /** - * See [`Pallet::as_derivative`]. - */ - v3: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v3.Call, - }) - ), -} - -export const batchAll = { - name: 'Utility.batch_all', - /** - * See [`Pallet::batch_all`]. - */ - v0: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::batch_all`]. - */ - v1: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::batch_all`]. - */ - v3: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), -} - -export const dispatchAs = { - name: 'Utility.dispatch_as', - /** - * See [`Pallet::dispatch_as`]. - */ - v0: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v0.OriginCaller, - call: v0.Call, - }) - ), - /** - * See [`Pallet::dispatch_as`]. - */ - v1: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v1.OriginCaller, - call: v1.Call, - }) - ), - /** - * See [`Pallet::dispatch_as`]. - */ - v3: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v3.OriginCaller, - call: v3.Call, - }) - ), -} - -export const forceBatch = { - name: 'Utility.force_batch', - /** - * See [`Pallet::force_batch`]. - */ - v0: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::force_batch`]. - */ - v1: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::force_batch`]. - */ - v3: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), -} - -export const withWeight = { - name: 'Utility.with_weight', - /** - * See [`Pallet::with_weight`]. - */ - v0: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v0.Call, - weight: v0.Weight, - }) - ), - /** - * See [`Pallet::with_weight`]. - */ - v1: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v1.Call, - weight: v1.Weight, - }) - ), - /** - * See [`Pallet::with_weight`]. - */ - v3: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v3.Call, - weight: v3.Weight, - }) - ), -} diff --git a/indexers/account-squid/src/types/utility/constants.ts b/indexers/account-squid/src/types/utility/constants.ts deleted file mode 100644 index e82480598..000000000 --- a/indexers/account-squid/src/types/utility/constants.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const batchedCallsLimit = { - /** - * The limit on the number of batched calls. - */ - v0: new ConstantType( - 'Utility.batched_calls_limit', - sts.number() - ), -} diff --git a/indexers/account-squid/src/types/utility/events.ts b/indexers/account-squid/src/types/utility/events.ts deleted file mode 100644 index 1652db0da..000000000 --- a/indexers/account-squid/src/types/utility/events.ts +++ /dev/null @@ -1,76 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const batchInterrupted = { - name: 'Utility.BatchInterrupted', - /** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ - v0: new EventType( - 'Utility.BatchInterrupted', - sts.struct({ - index: sts.number(), - error: v0.DispatchError, - }) - ), -} - -export const batchCompleted = { - name: 'Utility.BatchCompleted', - /** - * Batch of dispatches completed fully with no error. - */ - v0: new EventType( - 'Utility.BatchCompleted', - sts.unit() - ), -} - -export const batchCompletedWithErrors = { - name: 'Utility.BatchCompletedWithErrors', - /** - * Batch of dispatches completed but has errors. - */ - v0: new EventType( - 'Utility.BatchCompletedWithErrors', - sts.unit() - ), -} - -export const itemCompleted = { - name: 'Utility.ItemCompleted', - /** - * A single item within a Batch of dispatches has completed with no error. - */ - v0: new EventType( - 'Utility.ItemCompleted', - sts.unit() - ), -} - -export const itemFailed = { - name: 'Utility.ItemFailed', - /** - * A single item within a Batch of dispatches has completed with error. - */ - v0: new EventType( - 'Utility.ItemFailed', - sts.struct({ - error: v0.DispatchError, - }) - ), -} - -export const dispatchedAs = { - name: 'Utility.DispatchedAs', - /** - * A call was dispatched. - */ - v0: new EventType( - 'Utility.DispatchedAs', - sts.struct({ - result: sts.result(() => sts.unit(), () => v0.DispatchError), - }) - ), -} diff --git a/indexers/account-squid/src/types/v0.ts b/indexers/account-squid/src/types/v0.ts deleted file mode 100644 index deff27135..000000000 --- a/indexers/account-squid/src/types/v0.ts +++ /dev/null @@ -1,4597 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const HistorySize = sts.bigint() - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export const RuntimeDbWeight: sts.Type = sts.struct(() => { - return { - read: sts.bigint(), - write: sts.bigint(), - } -}) - -export interface RuntimeDbWeight { - read: bigint - write: bigint -} - -export const BlockLength: sts.Type = sts.struct(() => { - return { - max: Type_85, - } -}) - -export const Type_85: sts.Type = sts.struct(() => { - return { - normal: sts.number(), - operational: sts.number(), - mandatory: sts.number(), - } -}) - -export interface Type_85 { - normal: number - operational: number - mandatory: number -} - -export interface BlockLength { - max: Type_85 -} - -export const BlockWeights: sts.Type = sts.struct(() => { - return { - baseBlock: Weight, - maxBlock: Weight, - perClass: Type_81, - } -}) - -export const Type_81: sts.Type = sts.struct(() => { - return { - normal: WeightsPerClass, - operational: WeightsPerClass, - mandatory: WeightsPerClass, - } -}) - -export const WeightsPerClass: sts.Type = sts.struct(() => { - return { - baseExtrinsic: Weight, - maxExtrinsic: sts.option(() => Weight), - maxTotal: sts.option(() => Weight), - reserved: sts.option(() => Weight), - } -}) - -export interface WeightsPerClass { - baseExtrinsic: Weight - maxExtrinsic?: (Weight | undefined) - maxTotal?: (Weight | undefined) - reserved?: (Weight | undefined) -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export interface Type_81 { - normal: WeightsPerClass - operational: WeightsPerClass - mandatory: WeightsPerClass -} - -export interface BlockWeights { - baseBlock: Weight - maxBlock: Weight - perClass: Type_81 -} - -export interface BlockMessages { - outbox: [ChainId, [bigint, bigint], MessageWeightTag][] - inboxResponses: [ChainId, [bigint, bigint], MessageWeightTag][] -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export const BlockMessages: sts.Type = sts.struct(() => { - return { - outbox: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - inboxResponses: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export interface Message { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - payload: VersionedPayload - lastDeliveredMessageResponseNonce?: (bigint | undefined) -} - -export type VersionedPayload = VersionedPayload_V0 - -export interface VersionedPayload_V0 { - __kind: 'V0' - value: Payload -} - -export type Payload = Payload_Endpoint | Payload_Protocol - -export interface Payload_Endpoint { - __kind: 'Endpoint' - value: Type_294 -} - -export interface Payload_Protocol { - __kind: 'Protocol' - value: RequestResponse -} - -export type RequestResponse = RequestResponse_Request | RequestResponse_Response - -export interface RequestResponse_Request { - __kind: 'Request' - value: ProtocolMessageRequest -} - -export interface RequestResponse_Response { - __kind: 'Response' - value: Result -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -export type ProtocolMessageRequest = ProtocolMessageRequest_ChannelClose | ProtocolMessageRequest_ChannelOpen - -export interface ProtocolMessageRequest_ChannelClose { - __kind: 'ChannelClose' -} - -export interface ProtocolMessageRequest_ChannelOpen { - __kind: 'ChannelOpen' - value: InitiateChannelParams -} - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -export interface FeeModel { - relayFee: bigint -} - -export type Type_294 = Type_294_Request | Type_294_Response - -export interface Type_294_Request { - __kind: 'Request' - value: EndpointRequest -} - -export interface Type_294_Response { - __kind: 'Response' - value: Result -} - -export interface EndpointRequest { - srcEndpoint: Endpoint - dstEndpoint: Endpoint - payload: Bytes -} - -export const Message: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - payload: VersionedPayload, - lastDeliveredMessageResponseNonce: sts.option(() => sts.bigint()), - } -}) - -export const VersionedPayload: sts.Type = sts.closedEnum(() => { - return { - V0: Payload, - } -}) - -export const Payload: sts.Type = sts.closedEnum(() => { - return { - Endpoint: Type_294, - Protocol: RequestResponse, - } -}) - -export const RequestResponse: sts.Type = sts.closedEnum(() => { - return { - Request: ProtocolMessageRequest, - Response: sts.result(() => sts.unit(), () => DispatchError), - } -}) - -export const ProtocolMessageRequest: sts.Type = sts.closedEnum(() => { - return { - ChannelClose: sts.unit(), - ChannelOpen: InitiateChannelParams, - } -}) - -export const Type_294: sts.Type = sts.closedEnum(() => { - return { - Request: EndpointRequest, - Response: sts.result(() => sts.bytes(), () => DispatchError), - } -}) - -export const EndpointRequest: sts.Type = sts.struct(() => { - return { - srcEndpoint: Endpoint, - dstEndpoint: Endpoint, - payload: sts.bytes(), - } -}) - -export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel -} - -export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open - -export interface ChannelState_Closed { - __kind: 'Closed' -} - -export interface ChannelState_Initiated { - __kind: 'Initiated' -} - -export interface ChannelState_Open { - __kind: 'Open' -} - -export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } -}) - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint -} - -export type U256 = bigint - -export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } -}) - -export const U256 = sts.bigint() - -export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint -} - -export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } -}) - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint -} - -export interface KnownDeposit { - shares: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } -}) - -export type DomainEpoch = [DomainId, number] - -export type SharePrice = number - -export const SharePrice = sts.number() - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] -} - -export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } -}) - -export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export type DomainId = number - -export interface CollectedFees { - storage: bigint - compute: bigint - tips: bigint -} - -export const CollectedFees: sts.Type = sts.struct(() => { - return { - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - } -}) - -export interface BlockTransactionByteFee { - current: bigint - next: bigint -} - -export const BlockTransactionByteFee: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.bigint(), - } -}) - -export interface Type_152 { - amount: bigint -} - -export const Type_152: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - } -}) - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface ReserveData { - id: Bytes - amount: bigint -} - -export const ReserveData: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - } -}) - -export interface BalanceLock { - id: Bytes - amount: bigint - reasons: Reasons -} - -export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc - -export interface Reasons_All { - __kind: 'All' -} - -export interface Reasons_Fee { - __kind: 'Fee' -} - -export interface Reasons_Misc { - __kind: 'Misc' -} - -export const BalanceLock: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - reasons: Reasons, - } -}) - -export const Reasons: sts.Type = sts.closedEnum(() => { - return { - All: sts.unit(), - Fee: sts.unit(), - Misc: sts.unit(), - } -}) - -export interface AccountData { - free: bigint - reserved: bigint - frozen: bigint - flags: ExtraFlags -} - -export type ExtraFlags = bigint - -export const AccountData: sts.Type = sts.struct(() => { - return { - free: sts.bigint(), - reserved: sts.bigint(), - frozen: sts.bigint(), - flags: ExtraFlags, - } -}) - -export const ExtraFlags = sts.bigint() - -export type Randomness = Bytes - -export const Randomness = sts.bytes() - -export interface PotEntropyValue { - targetSlot?: (Slot | undefined) - entropy: Bytes -} - -export const PotEntropyValue: sts.Type = sts.struct(() => { - return { - targetSlot: sts.option(() => Slot), - entropy: sts.bytes(), - } -}) - -export type Signature = Bytes - -export const Signature = sts.bytes() - -export interface Scalar { - inner: Bytes -} - -export type PieceOffset = number - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export const PieceOffset = sts.number() - -export interface VoteVerificationData { - solutionRange: bigint - voteSolutionRange: bigint - currentSlot: Slot - parentSlot: Slot -} - -export const VoteVerificationData: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - voteSolutionRange: sts.bigint(), - currentSlot: Slot, - parentSlot: Slot, - } -}) - -export type SegmentIndex = bigint - -export type SegmentCommitment = Bytes - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type Public = Bytes - -export interface SolutionRangeOverride { - solutionRange: bigint - votingSolutionRange: bigint -} - -export const SolutionRangeOverride: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - votingSolutionRange: sts.bigint(), - } -}) - -export interface SolutionRanges { - current: bigint - next?: (bigint | undefined) - votingCurrent: bigint - votingNext?: (bigint | undefined) -} - -export const SolutionRanges: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.option(() => sts.bigint()), - votingCurrent: sts.bigint(), - votingNext: sts.option(() => sts.bigint()), - } -}) - -export type NonZeroU32 = number - -export const NonZeroU32 = sts.number() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export interface CodeUpgradeAuthorization { - codeHash: H256 - checkVersion: boolean -} - -export const CodeUpgradeAuthorization: sts.Type = sts.struct(() => { - return { - codeHash: H256, - checkVersion: sts.boolean(), - } -}) - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export interface LastRuntimeUpgradeInfo { - specVersion: number - specName: string -} - -export const LastRuntimeUpgradeInfo: sts.Type = sts.struct(() => { - return { - specVersion: sts.number(), - specName: sts.string(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export interface Digest { - logs: DigestItem[] -} - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type H256 = Bytes - -export interface PerDispatchClass { - normal: Weight - operational: Weight - mandatory: Weight -} - -export const PerDispatchClass: sts.Type = sts.struct(() => { - return { - normal: Weight, - operational: Weight, - mandatory: Weight, - } -}) - -export type AccountId32 = Bytes - -export interface AccountInfo { - nonce: number - consumers: number - providers: number - sufficients: number - data: AccountData -} - -export const AccountInfo: sts.Type = sts.struct(() => { - return { - nonce: sts.number(), - consumers: sts.number(), - providers: sts.number(), - sufficients: sts.number(), - data: AccountData, - } -}) - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } -}) - -export interface BlockInfo { - blockNumber: number - blockHash: H256 -} - -export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: ([BlockInfo, StorageProof] | undefined) - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type HistorySize = bigint - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - switch_domain: sts.enumStruct({ - operatorId: sts.bigint(), - newDomainId: DomainId, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::switch_domain`]. - */ -export interface DomainsCall_switch_domain { - __kind: 'switch_domain' - operatorId: bigint - newDomainId: DomainId -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export const DomainId = sts.number() - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Public = sts.bytes() - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export const AccountId32 = sts.bytes() - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) diff --git a/indexers/account-squid/src/types/v1.ts b/indexers/account-squid/src/types/v1.ts deleted file mode 100644 index 44f1ffbdf..000000000 --- a/indexers/account-squid/src/types/v1.ts +++ /dev/null @@ -1,4097 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const PalletId = sts.bytes() - -export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 -} - -export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } -}) - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainId = sts.number() - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) -} - -export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint -} - -export type DomainEpoch = [DomainId, number] - -export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } -}) - -export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint -} - -export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author or rewards not enabled. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export type Public = Bytes - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -export type Slot = bigint - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export const Public = sts.bytes() - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const Slot = sts.bigint() - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const PotOutput = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type PotOutput = Bytes - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Signature = sts.bytes() - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export interface Scalar { - inner: Bytes -} - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const PieceOffset = sts.number() - -export const HistorySize = sts.bigint() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type PieceOffset = number - -export type HistorySize = bigint - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Signature = Bytes - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - } -}) - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } -}) - -export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } -}) - -export interface BlockInfo { - blockNumber: number - blockHash: H256 -} - -export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: ([BlockInfo, StorageProof] | undefined) - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export interface FeeModel { - relayFee: bigint -} - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - switch_domain: sts.enumStruct({ - operatorId: sts.bigint(), - newDomainId: DomainId, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::switch_domain`]. - */ -export interface DomainsCall_switch_domain { - __kind: 'switch_domain' - operatorId: bigint - newDomainId: DomainId -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} - -export const AccountId32 = sts.bytes() diff --git a/indexers/account-squid/src/types/v3.ts b/indexers/account-squid/src/types/v3.ts deleted file mode 100644 index 0eda7a4a7..000000000 --- a/indexers/account-squid/src/types/v3.ts +++ /dev/null @@ -1,2472 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface RewardPoint { - block: number - subsidy: bigint -} - -export interface DomainAllowlistUpdates { - allowChains: ChainId[] - removeChains: ChainId[] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel - maybeOwner?: (AccountId32 | undefined) -} - -export interface FeeModel { - relayFee: bigint -} - -export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open - -export interface ChannelState_Closed { - __kind: 'Closed' -} - -export interface ChannelState_Initiated { - __kind: 'Initiated' -} - -export interface ChannelState_Open { - __kind: 'Open' -} - -export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - maybeOwner: sts.option(() => AccountId32), - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export type DomainId = number - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type DomainEpoch = [DomainId, number] - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export interface HoldIdentifier_Messenger { - __kind: 'Messenger' - value: MessengerHoldIdentifier -} - -export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel - -export interface MessengerHoldIdentifier_Channel { - __kind: 'Channel' - value: [ChainId, bigint] -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - Messenger: MessengerHoldIdentifier, - } -}) - -export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Channel: sts.tuple(() => [ChainId, sts.bigint()]), - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } -}) - -export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { - return { - allowChains: sts.array(() => ChainId), - removeChains: sts.array(() => ChainId), - } -}) - -export const DomainId = sts.number() - -export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { - return { - Add: ChainId, - Remove: ChainId, - } -}) - -export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove - -export interface ChainAllowlistUpdate_Add { - __kind: 'Add' - value: ChainId -} - -export interface ChainAllowlistUpdate_Remove { - __kind: 'Remove' - value: ChainId -} - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export const Proof: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - messageProof: StorageProof, - }), - Domain: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - domainProof: StorageProof, - messageProof: StorageProof, - }), - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Type_237, - } -}) - -export const Type_237: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export interface Type_237 { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export type H256 = Bytes - -export const EncodableOpaqueLeaf = sts.bytes() - -export const H256 = sts.bytes() - -export interface ConsensusChainMmrLeafProof { - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Type_237 -} - -export type EncodableOpaqueLeaf = Bytes - -export type Proof = Proof_Consensus | Proof_Domain - -export interface Proof_Consensus { - __kind: 'Consensus' - consensusChainMmrProof: ConsensusChainMmrLeafProof - messageProof: StorageProof -} - -export interface Proof_Domain { - __kind: 'Domain' - consensusChainMmrProof: ConsensusChainMmrLeafProof - domainProof: StorageProof - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - Rewards: RewardsCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Signature = sts.bytes() - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export interface Scalar { - inner: Bytes -} - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const PieceOffset = sts.number() - -export const HistorySize = sts.bigint() - -export const Public = sts.bytes() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type PieceOffset = number - -export type HistorySize = bigint - -export type Public = Bytes - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Signature = Bytes - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RewardsCall: sts.Type = sts.closedEnum(() => { - return { - update_issuance_params: sts.enumStruct({ - proposerSubsidyPoints: sts.array(() => RewardPoint), - voterSubsidyPoints: sts.array(() => RewardPoint), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RewardsCall = RewardsCall_update_issuance_params - -/** - * See [`Pallet::update_issuance_params`]. - */ -export interface RewardsCall_update_issuance_params { - __kind: 'update_issuance_params' - proposerSubsidyPoints: RewardPoint[] - voterSubsidyPoints: RewardPoint[] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - initiate_domain_update_chain_allowlist: sts.enumStruct({ - domainId: DomainId, - update: ChainAllowlistUpdate, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - update_consensus_chain_allowlist: sts.enumStruct({ - update: ChainAllowlistUpdate, - }), - update_domain_allowlist: sts.enumStruct({ - updates: DomainAllowlistUpdates, - }), - } -}) - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_initiate_domain_update_chain_allowlist | MessengerCall_relay_message | MessengerCall_relay_message_response | MessengerCall_update_consensus_chain_allowlist | MessengerCall_update_domain_allowlist - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::initiate_domain_update_chain_allowlist`]. - */ -export interface MessengerCall_initiate_domain_update_chain_allowlist { - __kind: 'initiate_domain_update_chain_allowlist' - domainId: DomainId - update: ChainAllowlistUpdate -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::update_consensus_chain_allowlist`]. - */ -export interface MessengerCall_update_consensus_chain_allowlist { - __kind: 'update_consensus_chain_allowlist' - update: ChainAllowlistUpdate -} - -/** - * See [`Pallet::update_domain_allowlist`]. - */ -export interface MessengerCall_update_domain_allowlist { - __kind: 'update_domain_allowlist' - updates: DomainAllowlistUpdates -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_Rewards | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_Rewards { - __kind: 'Rewards' - value: RewardsCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} diff --git a/indexers/rewards-squid/.gitignore b/indexers/accounts-squid/.gitignore similarity index 67% rename from indexers/rewards-squid/.gitignore rename to indexers/accounts-squid/.gitignore index e1ee2904b..b7db6c18c 100644 --- a/indexers/rewards-squid/.gitignore +++ b/indexers/accounts-squid/.gitignore @@ -5,8 +5,10 @@ /**Versions.json /**Versions.jsonl - # IDE files /.idea -/.env -/data \ No newline at end of file + +/db/ +/migrations/ +/src/model/ +/src/types/ \ No newline at end of file diff --git a/indexers/account-squid/.npmrc b/indexers/accounts-squid/.npmrc similarity index 100% rename from indexers/account-squid/.npmrc rename to indexers/accounts-squid/.npmrc diff --git a/indexers/accounts-squid/.prettierrc b/indexers/accounts-squid/.prettierrc new file mode 100644 index 000000000..49debf44c --- /dev/null +++ b/indexers/accounts-squid/.prettierrc @@ -0,0 +1,10 @@ +{ + "semi": false, + "tabWidth": 2, + "printWidth": 100, + "singleQuote": true, + "trailingComma": "all", + "jsxSingleQuote": true, + "bracketSpacing": true, + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/indexers/accounts-squid/.squidignore b/indexers/accounts-squid/.squidignore new file mode 100644 index 000000000..726f78c5f --- /dev/null +++ b/indexers/accounts-squid/.squidignore @@ -0,0 +1,7 @@ +node_modules +builds +lib +Dockerfile +.git +.github +.idea diff --git a/indexers/account-squid/LICENSE b/indexers/accounts-squid/LICENSE similarity index 96% rename from indexers/account-squid/LICENSE rename to indexers/accounts-squid/LICENSE index 7ef99c6a7..47cce4977 100644 --- a/indexers/account-squid/LICENSE +++ b/indexers/accounts-squid/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023 Subsquid Labs +Copyright (c) 2024 Autonomys Labs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/indexers/accounts-squid/README.md b/indexers/accounts-squid/README.md new file mode 100644 index 000000000..002ddf328 --- /dev/null +++ b/indexers/accounts-squid/README.md @@ -0,0 +1,194 @@ +# Consensus squid + +Our Consensus Indexer using [Squid](https://subsquid.io). +It is in use at [Astral - Consensus](https://explorer.autonomys.xyz/gemini-3h/consensus) Autonomys Explorer, Consensus section. + +## Summary + +- [Quickstart](#quickly-running-the-squid) +- [Development flow](#dev-flow) + - [Database Schema](#1-define-database-schema) + - [Entity classes](#2-generate-typeorm-classes) + - [DB migrations](#3-generate-database-migration) + - [Typegen for Events, Extrinsics and Storage Calls](#4-generate-typescript-definitions-for-substrate-events-calls-and-storage) +- [Deploy the Squid](#deploy-the-squid) +- [Conventions](#project-conventions) +- [Type Bundles](#types-bundle) + +## Prerequisites + +- node 16.x +- docker +- npm -- note that `yarn` package manager is not supported + +## Quickly running the squid + +Commands below use [sqd](https://docs.subsquid.io/squid-cli/). +Please [install](https://docs.subsquid.io/squid-cli/installation/) it before proceeding. + +```bash +# 1. Install dependencies +npm ci + +# 2. Start target Postgres database and detach +sqd up + +# 3. Build the project +sqd build + +# 4. Start both the squid processor and the GraphQL server +sqd run . +``` + +A GraphiQL playground will be available at [localhost:4350/graphql](http://localhost:4350/graphql). + +## Dev flow + +### 1. Define database schema + +Start development by defining the schema of the target database via `schema.graphql`. +Schema definition consists of regular graphql type declarations annotated with custom directives. +Full description of `schema.graphql` dialect is available [here](https://docs.subsquid.io/store/postgres/schema-file/). + +### 2. Generate TypeORM classes + +Mapping developers use [TypeORM](https://typeorm.io) entities +to interact with the target database during data processing. All necessary entity classes are +[generated](https://docs.subsquid.io/store/postgres/schema-file/intro/) by the squid framework from `schema.graphql`. This is done by running `npx squid-typeorm-codegen` +or (equivalently) `sqd codegen` command. + +### 3. Generate database migration + +All database changes are applied through migration files located at `db/migrations`. +`squid-typeorm-migration(1)` tool provides several commands to drive the process. +It is all [TypeORM](https://typeorm.io/#/migrations) under the hood. + +```bash +# Connect to database, analyze its state and generate migration to match the target schema. +# The target schema is derived from entity classes generated earlier. +# Don't forget to compile your entity classes beforehand! +npx squid-typeorm-migration generate + +# Create template file for custom database changes +npx squid-typeorm-migration create + +# Apply database migrations from `db/migrations` +npx squid-typeorm-migration apply + +# Revert the last performed migration +npx squid-typeorm-migration revert +``` + +Available `sqd` shortcuts: + +```bash +# Build the project, remove any old migrations, then run `npx squid-typeorm-migration generate` +sqd migration:generate + +# Run npx squid-typeorm-migration apply +sqd migration:apply +``` + +### 4. Generate TypeScript definitions for substrate events, calls and storage + +This is an optional part, but it is very advisable. + +Event, call and runtime storage data come to mapping handlers as raw untyped json. +While it is possible to work with raw untyped json data, +it's extremely error-prone and the json structure may change over time due to runtime upgrades. + +Squid framework provides a tool for generating type-safe wrappers around events, calls and runtime storage items for +each historical change in the spec version. See the [Substrate typegen](https://docs.subsquid.io/substrate-indexing/squid-substrate-typegen/) documentation page. + +## Deploy the Squid + +After a local run, obtain a deployment key by signing into [Subsquid Cloud](https://app.subsquid.io) and run + +```sh +npx sqd auth -k YOUR_DEPLOYMENT_KEY +``` + +Next, inspect the Squid CLI help to deploy and manage your squid: + +```sh +npx sqd squid --help +``` + +For more information, consult the [Deployment Guide](https://docs.subsquid.io/deploy-squid/). + +## Project conventions + +Squid tools assume a certain project layout. + +- All compiled js files must reside in `lib` and all TypeScript sources in `src`. + The layout of `lib` must reflect `src`. +- All TypeORM classes must be exported by `src/model/index.ts` (`lib/model` module). +- Database schema must be defined in `schema.graphql`. +- Database migrations must reside in `db/migrations` and must be plain js files. +- `squid-*(1)` executables consult `.env` file for a number of environment variables. + +See the [full desription](https://docs.subsquid.io/basics/squid-structure/) in the documentation. + +## Types bundle + +Substrate chains that have blocks with metadata versions below 14 don't provide enough +information to decode their data. For those chains, external [type](https://polkadot.js.org/docs/api/start/types.extend) [definitions](https://polkadot.js.org/docs/api/start/types.extend) are required. + +Subsquid tools include definitions for many chains, however sometimes external +definitions are still required. + +You can pass them as a special json file (types bundle) of the following structure: + +```json5 +{ + types: { + AccountId: "[u8; 32]", + }, + typesAlias: { + assets: { + Balance: "u64", + }, + }, + versions: [ + { + minmax: [0, 1000], // spec version range with inclusive boundaries + types: { + AccountId: "[u8; 16]", + }, + typesAlias: { + assets: { + Balance: "u32", + }, + }, + }, + ], +} +``` + +- `.types` - scale type definitions similar to [polkadot.js types](https://polkadot.js.org/docs/api/start/types.extend#extension) +- `.typesAlias` - similar to [polkadot.js type aliases](https://polkadot.js.org/docs/api/start/types.extend#type-clashes) +- `.versions` - per-block range overrides/patches for above fields. + +All fields in the type bundle are optional and applied on top of a fixed set of well-known frame types. + +Note, that although the structure of subsquid types bundle is very similar to the one from polkadot.js, +those two are not fully compatible. + +## Differences from polkadot.js + +Polkadot.js provides lots of [specialized classes](https://polkadot.js.org/docs/api/start/types.basics) for various types of data. +Even primitives like `u32` are exposed through special classes. +In contrast, the squid framework works only with plain js primitives and objects. +For instance, account data is passed to the handler context as a plain byte array. To convert it into a standard human-readable format one should explicitly use a utility lib `@subsquid/ss58`: + +```typescript + // ... + from: ss58.codec('kusama').encode(rec.from), + to: ss58.codec('kusama').encode(rec.to), +``` + +## Graphql server extensions + +It is possible to extend `squid-graphql-server(1)` with custom +[type-graphql](https://typegraphql.com) resolvers and to add request validation. +For more details, consult [docs](https://docs.subsquid.io/graphql-api/). diff --git a/indexers/account-squid/commands.json b/indexers/accounts-squid/commands.json similarity index 85% rename from indexers/account-squid/commands.json rename to indexers/accounts-squid/commands.json index 2e95a4be0..e36c754d1 100644 --- a/indexers/account-squid/commands.json +++ b/indexers/accounts-squid/commands.json @@ -14,10 +14,6 @@ "description": "Start a PG database", "cmd": ["docker", "compose", "up", "-d"] }, - "up-local": { - "description": "Start a PG database", - "cmd": ["docker", "compose", "-f", "docker-compose-local.yml", "up", "-d"] - }, "down": { "description": "Drop a PG database", "cmd": ["docker", "compose", "down"] @@ -61,12 +57,13 @@ }, "serve": { "description": "Start the GraphQL API server", - "cmd": ["squid-graphql-server"] + "cmd": ["squid-graphql-server", "--subscriptions"] }, "serve:prod": { "description": "Start the GraphQL API server with caching and limits", "cmd": [ "squid-graphql-server", + "--subscriptions", "--dumb-cache", "in-memory", "--dumb-cache-ttl", @@ -95,15 +92,6 @@ "open": { "description": "Open a local browser window", "cmd": ["npx", "--yes", "opener"] - }, - "metadata:explore": { - "description": "Explore the metadata of a Substrate chain", - "cmd": [ - "npx", - "substrate-metadata-explorer", - "--rpc=https://rpc-0.gemini-3h.subspace.network/ws", - "--out=gemini3h.jsonl" - ] } } } diff --git a/indexers/account-squid/gemini3h.jsonl b/indexers/accounts-squid/gemini3h.jsonl similarity index 100% rename from indexers/account-squid/gemini3h.jsonl rename to indexers/accounts-squid/gemini3h.jsonl diff --git a/indexers/general-squid/package-lock.json b/indexers/accounts-squid/package-lock.json similarity index 82% rename from indexers/general-squid/package-lock.json rename to indexers/accounts-squid/package-lock.json index a42d8d04b..ac684a2ec 100644 --- a/indexers/general-squid/package-lock.json +++ b/indexers/accounts-squid/package-lock.json @@ -1,30 +1,31 @@ { - "name": "squid", + "name": "accounts-squid", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "squid", + "name": "accounts-squid", + "version": "1.0.0", "dependencies": { - "@belopash/typeorm-store": "^1.2.2", - "@polkadot/api": "^10.12.2", - "@polkadot/util": "^12.6.2", - "@subsquid/archive-registry": "^3.3.0", - "@subsquid/graphql-server": "^4.5.0", + "@autonomys/auto-consensus": "^0.2.0", + "@autonomys/auto-utils": "^0.2.0", + "@subsquid/graphql-server": "^4.5.1", "@subsquid/ss58": "^2.0.2", - "@subsquid/substrate-processor": "^8.1.1", + "@subsquid/substrate-processor": "^8.3.0", "@subsquid/typeorm-migration": "^1.3.0", - "dotenv": "^16.4.4", - "pg": "8.11.3", - "rimraf": "^5.0.5", + "@subsquid/typeorm-store": "^1.4.0", + "dotenv": "^16.4.5", + "pg": "8.11.5", "typeorm": "^0.3.20" }, "devDependencies": { "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/substrate-typegen": "^8.0.2", - "@subsquid/typeorm-codegen": "^1.3.3", - "@types/node": "^20.11.17", - "typescript": "^5.3.3" + "@subsquid/substrate-runtime": "^2.0.0", + "@subsquid/substrate-typegen": "^8.1.0", + "@subsquid/typeorm-codegen": "^2.0.0", + "@types/node": "^20.12.7", + "typescript": "^5.4.5" }, "engines": { "node": ">=16" @@ -183,25 +184,23 @@ "xss": "^1.0.8" } }, - "node_modules/@belopash/typeorm-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@belopash/typeorm-store/-/typeorm-store-1.2.2.tgz", - "integrity": "sha512-SIoCsgCq1s4oCEoMecmfqP0muup295Uh/5AV8wL+DfeHct8041hzCNCq011lN/eQDwsWSlO4Ya44rGC7s6IqoQ==", + "node_modules/@autonomys/auto-consensus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@autonomys/auto-consensus/-/auto-consensus-0.2.0.tgz", + "integrity": "sha512-2kfHOVOXgdhoMAcRP46J4Tk3qeuT/CHetJNtjcVPY0H3ojGPpmfaFg2jBenQqGz59TacjSjLhSouA5UlY7iDJg==", "dependencies": { - "@subsquid/logger": "^1.3.1", - "@subsquid/util-internal": "^2.5.2" - }, - "peerDependencies": { - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/typeorm-store": "^1.2.1", - "pg": "^8.11.3", - "typeorm": "^0.3.16" + "@autonomys/auto-utils": "^0.2.0" } }, - "node_modules/@belopash/typeorm-store/node_modules/@subsquid/util-internal": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-2.5.2.tgz", - "integrity": "sha512-N7lfZdWEkM35jG5wdGYx25TJKGGLMOx9VInSeRhW9T/3BEmHAuSWI2mIIYnZ8w5L041V8HGo61ijWF6qsXvZjg==" + "node_modules/@autonomys/auto-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@autonomys/auto-utils/-/auto-utils-0.2.0.tgz", + "integrity": "sha512-uu4OxTWXGQk09HxmQsJQTmrcKAqwdTdGQy/zUloVm5/IAYPKmI1ttSPI/5BSUxeoKsBd69XFfb3wqtYfO5/ytw==", + "dependencies": { + "@polkadot/api": "^11.2.1", + "@polkadot/extension-dapp": "^0.47.5", + "fs": "^0.0.1-security" + } }, "node_modules/@exodus/schemasafe": { "version": "1.3.0", @@ -210,11 +209,11 @@ "dev": true }, "node_modules/@graphql-tools/merge": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz", - "integrity": "sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.3.tgz", + "integrity": "sha512-FeKv9lKLMwqDu0pQjPpF59GY3HReUkWXKsMIuMuJQOKh9BETu7zPEFUELvcw8w+lwZkl4ileJsHXC9+AnsT2Lw==", "dependencies": { - "@graphql-tools/utils": "^10.0.10", + "@graphql-tools/utils": "^10.0.13", "tslib": "^2.4.0" }, "engines": { @@ -277,12 +276,12 @@ } }, "node_modules/@graphql-tools/schema": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz", - "integrity": "sha512-TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.3.tgz", + "integrity": "sha512-p28Oh9EcOna6i0yLaCFOnkcBDQECVf3SCexT6ktb86QNj9idnkhI+tCxnwZDh58Qvjd2nURdkbevvoZkvxzCog==", "dependencies": { - "@graphql-tools/merge": "^9.0.1", - "@graphql-tools/utils": "^10.0.10", + "@graphql-tools/merge": "^9.0.3", + "@graphql-tools/utils": "^10.0.13", "tslib": "^2.4.0", "value-or-promise": "^1.0.12" }, @@ -294,9 +293,9 @@ } }, "node_modules/@graphql-tools/utils": { - "version": "10.0.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.13.tgz", - "integrity": "sha512-fMILwGr5Dm2zefNItjQ6C2rauigklv69LIwppccICuGTnGaOp3DspLt/6Lxj72cbg5d9z60Sr+Egco3CJKLsNg==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.1.2.tgz", + "integrity": "sha512-fX13CYsDnX4yifIyNdiN0cVygz/muvkreWWem6BBw130+ODbRRgfiVveL0NizCEnKXkpvdeTy9Bxvo9LIKlhrw==", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", "cross-inspect": "1.0.0", @@ -356,9 +355,9 @@ } }, "node_modules/@noble/curves": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", - "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", "dependencies": { "@noble/hashes": "1.4.0" }, @@ -386,84 +385,84 @@ "node": ">=14" } }, - "node_modules/@polkadot-api/client": { - "version": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "resolved": "https://registry.npmjs.org/@polkadot-api/client/-/client-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz", - "integrity": "sha512-WDSMp8zKNdp6/MhbrkvS1QFn7G9sOrjv8CDHLg6SrH3MlHWAysEWRgAz6U0I9wKklmXR1tMZR+zJ3NuiTAE10A==", - "optional": true, - "dependencies": { - "@polkadot-api/metadata-builders": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@polkadot-api/substrate-bindings": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@polkadot-api/substrate-client": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@polkadot-api/utils": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - }, - "peerDependencies": { - "rxjs": ">=7.8.0" - } - }, "node_modules/@polkadot-api/json-rpc-provider": { - "version": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz", - "integrity": "sha512-772gcl5MXdmIvXuhJwVqM/APp+6f6ocRGfzcYoFfdghJ4A68l9ir1SDny691vcJXE8CQ7NAcz5Gl3t1Gz1MIqg==", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1.tgz", + "integrity": "sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA==", "optional": true }, "node_modules/@polkadot-api/json-rpc-provider-proxy": { - "version": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz", - "integrity": "sha512-hzupcyUtObK6W1dyyeEp4BJBHRiGecB6t6YJQPk78UY1PnLsqFiboNh5doAywf+DoGBT1YXlxbYBAE3Wg43c9w==", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1.tgz", + "integrity": "sha512-gmVDUP8LpCH0BXewbzqXF2sdHddq1H1q+XrAW2of+KZj4woQkIGBRGTJHeBEVHe30EB+UejR1N2dT4PO/RvDdg==", "optional": true }, "node_modules/@polkadot-api/metadata-builders": { - "version": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz", - "integrity": "sha512-T4t2O5Nhr8yrfJtKF5+JaxGO2TY7uFxQK0N/gDp7rDglvluiWiAl5nRvXhFzI03JOAtJ7Ey6O+ezEL1YwCjbwA==", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1.tgz", + "integrity": "sha512-GCI78BHDzXAF/L2pZD6Aod/yl82adqQ7ftNmKg51ixRL02JpWUA+SpUKTJE5MY1p8kiJJIo09P2um24SiJHxNA==", + "optional": true, + "dependencies": { + "@polkadot-api/substrate-bindings": "0.0.1", + "@polkadot-api/utils": "0.0.1" + } + }, + "node_modules/@polkadot-api/observable-client": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/observable-client/-/observable-client-0.1.0.tgz", + "integrity": "sha512-GBCGDRztKorTLna/unjl/9SWZcRmvV58o9jwU2Y038VuPXZcr01jcw/1O3x+yeAuwyGzbucI/mLTDa1QoEml3A==", "optional": true, "dependencies": { - "@polkadot-api/substrate-bindings": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@polkadot-api/utils": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" + "@polkadot-api/metadata-builders": "0.0.1", + "@polkadot-api/substrate-bindings": "0.0.1", + "@polkadot-api/substrate-client": "0.0.1", + "@polkadot-api/utils": "0.0.1" + }, + "peerDependencies": { + "rxjs": ">=7.8.0" } }, "node_modules/@polkadot-api/substrate-bindings": { - "version": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz", - "integrity": "sha512-oAOAwYG7iW2BUgLMzCo//pq+8X/zm5BxDUgJFtG0vPb3leUMd5kKnJcn7hWv9H4vLhyicAVoOPJrEPd/Kzocag==", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1.tgz", + "integrity": "sha512-bAe7a5bOPnuFVmpv7y4BBMRpNTnMmE0jtTqRUw/+D8ZlEHNVEJQGr4wu3QQCl7k1GnSV1wfv3mzIbYjErEBocg==", "optional": true, "dependencies": { "@noble/hashes": "^1.3.1", - "@polkadot-api/utils": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", + "@polkadot-api/utils": "0.0.1", "@scure/base": "^1.1.1", - "scale-ts": "^1.4.3" + "scale-ts": "^1.6.0" } }, "node_modules/@polkadot-api/substrate-client": { - "version": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-client/-/substrate-client-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz", - "integrity": "sha512-rHLhKLJxv9CSplu+tXOgpxBwYDXCh32xwbJcZqxMWlXkjoNI2OB9hulX/3GJ0NE/ngMh3DV1hrqNLmyc/8PU+A==", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-client/-/substrate-client-0.0.1.tgz", + "integrity": "sha512-9Bg9SGc3AwE+wXONQoW8GC00N3v6lCZLW74HQzqB6ROdcm5VAHM4CB/xRzWSUF9CXL78ugiwtHx3wBcpx4H4Wg==", "optional": true }, "node_modules/@polkadot-api/utils": { - "version": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "resolved": "https://registry.npmjs.org/@polkadot-api/utils/-/utils-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz", - "integrity": "sha512-H7hOfilvx65wYxMjAI130rK34GcAPzMEuoP5W693N0PsXYc1QeoEHSza5NSgoN1U4jGNzDBoxu0al2WGKo1B5g==", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/utils/-/utils-0.0.1.tgz", + "integrity": "sha512-3j+pRmlF9SgiYDabSdZsBSsN5XHbpXOAce1lWj56IEEaFZVjsiCaxDOA7C9nCcgfVXuvnbxqqEGQvnY+QfBAUw==", "optional": true }, "node_modules/@polkadot/api": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-10.12.2.tgz", - "integrity": "sha512-A03hpnbIko6CGC3R/rQBOg0aXNR5HFkynL2t5ueqzmYbxFQWx1e8gMXbJZnbVlwtwJJ6FIxzOA6mmZQr+yiLrw==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-11.3.1.tgz", + "integrity": "sha512-q4kFIIHTLvKxM24b0Eo8hJevsPMme+aITJGrDML9BgdZYTRN14+cu5nXiCsQvaEamdyYj+uCXWe2OV9X7pPxsA==", "dependencies": { - "@polkadot/api-augment": "10.12.2", - "@polkadot/api-base": "10.12.2", - "@polkadot/api-derive": "10.12.2", + "@polkadot/api-augment": "11.3.1", + "@polkadot/api-base": "11.3.1", + "@polkadot/api-derive": "11.3.1", "@polkadot/keyring": "^12.6.2", - "@polkadot/rpc-augment": "10.12.2", - "@polkadot/rpc-core": "10.12.2", - "@polkadot/rpc-provider": "10.12.2", - "@polkadot/types": "10.12.2", - "@polkadot/types-augment": "10.12.2", - "@polkadot/types-codec": "10.12.2", - "@polkadot/types-create": "10.12.2", - "@polkadot/types-known": "10.12.2", + "@polkadot/rpc-augment": "11.3.1", + "@polkadot/rpc-core": "11.3.1", + "@polkadot/rpc-provider": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-augment": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/types-create": "11.3.1", + "@polkadot/types-known": "11.3.1", "@polkadot/util": "^12.6.2", "@polkadot/util-crypto": "^12.6.2", "eventemitter3": "^5.0.1", @@ -475,15 +474,15 @@ } }, "node_modules/@polkadot/api-augment": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-10.12.2.tgz", - "integrity": "sha512-bIz/HVKRcL5pJCg37cnf8ApWHJbRjAQBEvCubSDOquay/i25jG6Rs97zL4ptXHsp0md/TDeUQVloF5Feqn3/iQ==", - "dependencies": { - "@polkadot/api-base": "10.12.2", - "@polkadot/rpc-augment": "10.12.2", - "@polkadot/types": "10.12.2", - "@polkadot/types-augment": "10.12.2", - "@polkadot/types-codec": "10.12.2", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-11.3.1.tgz", + "integrity": "sha512-Yj+6rb6h0WwY3yJ+UGhjGW+tyMRFUMsKQuGw+eFsXdjiNU9UoXsAqA2dG7Q1F+oeX/g+y2gLGBezNoCwbl6HfA==", + "dependencies": { + "@polkadot/api-base": "11.3.1", + "@polkadot/rpc-augment": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-augment": "11.3.1", + "@polkadot/types-codec": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" }, @@ -492,12 +491,12 @@ } }, "node_modules/@polkadot/api-base": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-10.12.2.tgz", - "integrity": "sha512-pkK1RNG0w5seb6BDwZbVZF+Q6rm7SiSXOa2WQQR9UbjptP7eA8bRtxVSOA4fb4lxbOjJXamCFimXaNc1B1XRLA==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-11.3.1.tgz", + "integrity": "sha512-b8UkNL00NN7+3QaLCwL5cKg+7YchHoKCAhwKusWHNBZkkO6Oo2BWilu0dZkPJOyqV9P389Kbd9+oH+SKs9u2VQ==", "dependencies": { - "@polkadot/rpc-core": "10.12.2", - "@polkadot/types": "10.12.2", + "@polkadot/rpc-core": "11.3.1", + "@polkadot/types": "11.3.1", "@polkadot/util": "^12.6.2", "rxjs": "^7.8.1", "tslib": "^2.6.2" @@ -507,16 +506,16 @@ } }, "node_modules/@polkadot/api-derive": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-10.12.2.tgz", - "integrity": "sha512-TWUB+V31NrzxF+Ep7GucTyV20SbP0mUvDQGEannkENCTQpbL0JXIi1PHDCBNuShzdr1m6eQ5inLx1RmxvoOfDg==", - "dependencies": { - "@polkadot/api": "10.12.2", - "@polkadot/api-augment": "10.12.2", - "@polkadot/api-base": "10.12.2", - "@polkadot/rpc-core": "10.12.2", - "@polkadot/types": "10.12.2", - "@polkadot/types-codec": "10.12.2", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-11.3.1.tgz", + "integrity": "sha512-9dopzrh4cRuft1nANmBvMY/hEhFDu0VICMTOGxQLOl8NMfcOFPTLAN0JhSBUoicGZhV+c4vpv01NBx/7/IL1HA==", + "dependencies": { + "@polkadot/api": "11.3.1", + "@polkadot/api-augment": "11.3.1", + "@polkadot/api-base": "11.3.1", + "@polkadot/rpc-core": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", "@polkadot/util": "^12.6.2", "@polkadot/util-crypto": "^12.6.2", "rxjs": "^7.8.1", @@ -526,6 +525,46 @@ "node": ">=18" } }, + "node_modules/@polkadot/extension-dapp": { + "version": "0.47.6", + "resolved": "https://registry.npmjs.org/@polkadot/extension-dapp/-/extension-dapp-0.47.6.tgz", + "integrity": "sha512-GpV0MQGL5c4y5lVcQXP+tf6Nnyqau/9ZHQnQdsWosnrjR0n9iak8UgWl1hQEGqBp/nYi9TdvdA4uFvcIjv1Jng==", + "dependencies": { + "@polkadot/extension-inject": "0.47.6", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/api": "*", + "@polkadot/util": "*", + "@polkadot/util-crypto": "*" + } + }, + "node_modules/@polkadot/extension-inject": { + "version": "0.47.6", + "resolved": "https://registry.npmjs.org/@polkadot/extension-inject/-/extension-inject-0.47.6.tgz", + "integrity": "sha512-rDTHyjGBgNochLc5Us+H2YJXUb2HW4hJJ23+6B7Mv373mfBYtM1T1HDkIWzV/xNJmiboAQy4O41N71CmZq4j7g==", + "dependencies": { + "@polkadot/api": "^11.3.1", + "@polkadot/rpc-provider": "^11.3.1", + "@polkadot/types": "^11.3.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "@polkadot/x-global": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/api": "*", + "@polkadot/util": "*" + } + }, "node_modules/@polkadot/keyring": { "version": "12.6.2", "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-12.6.2.tgz", @@ -557,13 +596,13 @@ } }, "node_modules/@polkadot/rpc-augment": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-10.12.2.tgz", - "integrity": "sha512-JXifdUrt1SfCQst7E5ifNVHiroonmG6CN0rf7i2eSLJt6u4/v90RpaNogHrMumN3ZIV0cLwV19eb6tYxFQo/GA==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-11.3.1.tgz", + "integrity": "sha512-2PaDcKNju4QYQpxwVkWbRU3M0t340nMX9cMo+8awgvgL1LliV/fUDZueMKLuSS910JJMTPQ7y2pK4eQgMt08gQ==", "dependencies": { - "@polkadot/rpc-core": "10.12.2", - "@polkadot/types": "10.12.2", - "@polkadot/types-codec": "10.12.2", + "@polkadot/rpc-core": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" }, @@ -572,13 +611,13 @@ } }, "node_modules/@polkadot/rpc-core": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-10.12.2.tgz", - "integrity": "sha512-p0caB9O8uv5aJQwmq80l3mgdIX46N4t+YVeKDcN8tSyiLJ+2xYuHAtRfklDH5OewvnYdWjzqFx1LDmXoPtFh2g==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-11.3.1.tgz", + "integrity": "sha512-KKNepsDd/mpmXcA6v/h14eFFPEzLGd7nrvx2UUXUxoZ0Fq2MH1hplP3s93k1oduNY/vOXJR2K9S4dKManA6GVQ==", "dependencies": { - "@polkadot/rpc-augment": "10.12.2", - "@polkadot/rpc-provider": "10.12.2", - "@polkadot/types": "10.12.2", + "@polkadot/rpc-augment": "11.3.1", + "@polkadot/rpc-provider": "11.3.1", + "@polkadot/types": "11.3.1", "@polkadot/util": "^12.6.2", "rxjs": "^7.8.1", "tslib": "^2.6.2" @@ -588,13 +627,13 @@ } }, "node_modules/@polkadot/rpc-provider": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-10.12.2.tgz", - "integrity": "sha512-RhGSpDRHqp0NvznmTR11aRyO99GgKeV1bFkXw8JPsvuDkazROsS2XNmNXYFt8TZYGmcBxryVOw4neEfiyXljHw==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-11.3.1.tgz", + "integrity": "sha512-pqERChoHo45hd3WAgW8UuzarRF+G/o/eXEbl0PXLubiayw4X4qCmIzmtntUcKYgxGNcYGZaG87ZU8OjN97m6UA==", "dependencies": { "@polkadot/keyring": "^12.6.2", - "@polkadot/types": "10.12.2", - "@polkadot/types-support": "10.12.2", + "@polkadot/types": "11.3.1", + "@polkadot/types-support": "11.3.1", "@polkadot/util": "^12.6.2", "@polkadot/util-crypto": "^12.6.2", "@polkadot/x-fetch": "^12.6.2", @@ -609,18 +648,18 @@ "node": ">=18" }, "optionalDependencies": { - "@substrate/connect": "0.8.7" + "@substrate/connect": "0.8.10" } }, "node_modules/@polkadot/types": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-10.12.2.tgz", - "integrity": "sha512-4iSmKpJ+PtC/n4jVgqRksc4NsGCYFE79tyjrb1W9ewYaaLhAwq7MW1TZY8Em08WwCmQSjxqcp9nYCs2plAJLEA==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-11.3.1.tgz", + "integrity": "sha512-5c7uRFXQTT11Awi6T0yFIdAfD6xGDAOz06Kp7M5S9OGNZY28wSPk5x6BYfNphWPaIBmHHewYJB5qmnrdYQAWKQ==", "dependencies": { "@polkadot/keyring": "^12.6.2", - "@polkadot/types-augment": "10.12.2", - "@polkadot/types-codec": "10.12.2", - "@polkadot/types-create": "10.12.2", + "@polkadot/types-augment": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/types-create": "11.3.1", "@polkadot/util": "^12.6.2", "@polkadot/util-crypto": "^12.6.2", "rxjs": "^7.8.1", @@ -631,12 +670,12 @@ } }, "node_modules/@polkadot/types-augment": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-10.12.2.tgz", - "integrity": "sha512-g5YvuXclkefe4dqpJXWesv1ksNeSsgP2PT4qdW+atkayTiCJIFYM2m6scNn+iZ98TWx6B5OOjMUQmRgiNOrpBA==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-11.3.1.tgz", + "integrity": "sha512-eR3HVpvUmB3v7q2jTWVmVfAVfb1/kuNn7ij94Zqadg/fuUq0pKqIOKwkUj3OxRM3A/5BnW3MbgparjKD3r+fyw==", "dependencies": { - "@polkadot/types": "10.12.2", - "@polkadot/types-codec": "10.12.2", + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" }, @@ -645,9 +684,9 @@ } }, "node_modules/@polkadot/types-codec": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-10.12.2.tgz", - "integrity": "sha512-9DHBVvixuc0CNTBANsxGFITWcpUxfL5whL0h/tUA3yL/kT5/3Rp3E+GgEOJhwFAwMRHlNY7ll4lA9K2h+leELQ==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-11.3.1.tgz", + "integrity": "sha512-i7IiiuuL+Z/jFoKTA9xeh4wGQnhnNNjMT0+1ohvlOvnFsoKZKFQQOaDPPntGJVL1JDCV+KjkN2uQKZSeW8tguQ==", "dependencies": { "@polkadot/util": "^12.6.2", "@polkadot/x-bigint": "^12.6.2", @@ -658,11 +697,11 @@ } }, "node_modules/@polkadot/types-create": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-10.12.2.tgz", - "integrity": "sha512-SZsnB3hePa7zQJpeCqK7rGpiptLr8BpVALU3TiXiY96Wg4aafA5pAdAz+TOp/hskQP5h9X42WdkMhkabFLtGiA==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-11.3.1.tgz", + "integrity": "sha512-pBXtpz5FehcRJ6j5MzFUIUN8ZWM7z6HbqK1GxBmYbJVRElcGcOg7a/rL2pQVphU0Rx1E8bSO4thzGf4wUxSX7w==", "dependencies": { - "@polkadot/types-codec": "10.12.2", + "@polkadot/types-codec": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" }, @@ -671,14 +710,14 @@ } }, "node_modules/@polkadot/types-known": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-10.12.2.tgz", - "integrity": "sha512-N8V82MZMjDZVXMzyDy4HEpwr8plht5VSYY0X6OJp+TSF+Y63bxZkHwpY14vq7d8eb57Ze8A8HKTuMfaP8bPC2g==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-11.3.1.tgz", + "integrity": "sha512-3BIof7u6tn9bk3ZCIxA07iNoQ3uj4+vn3DTOjCKECozkRlt6V+kWRvqh16Hc0SHMg/QjcMb2fIu/WZhka1McUQ==", "dependencies": { "@polkadot/networks": "^12.6.2", - "@polkadot/types": "10.12.2", - "@polkadot/types-codec": "10.12.2", - "@polkadot/types-create": "10.12.2", + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/types-create": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" }, @@ -687,9 +726,9 @@ } }, "node_modules/@polkadot/types-support": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-10.12.2.tgz", - "integrity": "sha512-0gIbphB94dyONaq0wvPaGeQ8IMURVOURDnm8yPXvqULFjr7E0PKVgG6rHAvcRl/D7T63WqjqIih5oDAfM/1U2Q==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-11.3.1.tgz", + "integrity": "sha512-jTFz1GKyF7nI29yIOq4v0NiWTOf5yX4HahJNeFD8TcxoLhF+6tH/XXqrUXJEfbaTlSrRWiW1LZYlb+snctqKHA==", "dependencies": { "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" @@ -980,9 +1019,9 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@scure/base": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz", - "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz", + "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", "funding": { "url": "https://paulmillr.com/funding/" } @@ -992,29 +1031,15 @@ "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==" }, - "node_modules/@subsquid/archive-registry": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/archive-registry/-/archive-registry-3.3.0.tgz", - "integrity": "sha512-moXnGNOSmKMHyuDvUiOHbpL7IePSo4XZOW9OnzESIND64eGxlKusIsCi8Nth1DgzbE/UTTFeNJvYKu0v7SOIqw==", - "dependencies": { - "@subsquid/util-internal": "^1.0.0", - "commander": "^10.0.0", - "easy-table": "^1.2.0", - "sync-fetch": "^0.5.2" - }, - "bin": { - "squid-archive-registry": "bin/run.js" - } - }, "node_modules/@subsquid/graphiql-console": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@subsquid/graphiql-console/-/graphiql-console-0.3.0.tgz", "integrity": "sha512-C89mus6IXnNi0xMQrZqUFBZwLj8tbuq9lye8Gq/lHmmERAUpi6UsWEyLdJLx2mneZzF3JtY8eNiiZ16jmjtvfw==" }, "node_modules/@subsquid/graphql-server": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-4.5.0.tgz", - "integrity": "sha512-SKCq6qF8FGrsrzFpjLzyDf3Cbcp4e8Z2M+t6Er3en7WLY3jZtdEGf3HbfCH6ukhQoJ72lUSNsESdwEoazOslRA==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-4.5.1.tgz", + "integrity": "sha512-PMC5Kc9ptjhrBIBRvvhkHiSRUEGJqv6Bc838VnvLtF5kMrGjSI+pPUiA5t+rhdfxywX1j+ZEdBpaRypAGo6Otw==", "dependencies": { "@apollo/utils.keyvadapter": "~1.1.2", "@apollo/utils.keyvaluecache": "~1.0.2", @@ -1022,12 +1047,12 @@ "@graphql-tools/schema": "^10.0.2", "@graphql-tools/utils": "^10.0.11", "@keyv/redis": "~2.5.8", - "@subsquid/logger": "^1.3.2", - "@subsquid/openreader": "^4.5.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/openreader": "^4.5.1", "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-commander": "^1.3.2", - "@subsquid/util-internal-http-server": "^1.2.2", + "@subsquid/util-internal-http-server": "^2.0.0", "@subsquid/util-internal-ts-node": "^0.0.0", "apollo-server-core": "^3.13.0", "apollo-server-express": "^3.13.0", @@ -1065,46 +1090,20 @@ } } }, - "node_modules/@subsquid/graphql-server/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/graphql-server/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/graphql-server/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, "node_modules/@subsquid/http-client": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/http-client/-/http-client-1.3.2.tgz", - "integrity": "sha512-N9fXB2TCYzzT4CNoTibpgk4lMFNU463/ZQcSstPPMIpZA9QdDjY+mNdjLTi8L+4DzimgjEbwYfLQX5aINYvkMA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@subsquid/http-client/-/http-client-1.4.0.tgz", + "integrity": "sha512-y+exFBQygbdvhmMrXVMUMkSQnmW8w7jz7zbRSCvjJRfmzXLjIi9dOQT2eIGN7e9GY/MvsW/qpDJEWhIbkcHsuw==", "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", "node-fetch": "^3.3.2" } }, - "node_modules/@subsquid/http-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/logger": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/logger/-/logger-1.3.2.tgz", - "integrity": "sha512-5YPdeRu0WD9iBak+r3S8blBeg2uyliPUlmCjj/ZE6dpXmXsSN9T+ZYrNeDr9eAbRV7OXVI49lSfCuAGenFcYjQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@subsquid/logger/-/logger-1.3.3.tgz", + "integrity": "sha512-BdoRVIOrIRzKdMZPoJxzJzPLulf5Q09GeLtJn0whP+rhDV5nQ4ANDAzjPg9jmgH9WkMYAr2XH4lny/4PjhQUNA==", "dependencies": { "@subsquid/util-internal-hex": "^1.2.2", "@subsquid/util-internal-json": "^1.2.2", @@ -1112,17 +1111,17 @@ } }, "node_modules/@subsquid/openreader": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-4.5.0.tgz", - "integrity": "sha512-A07K1TM0YY2iZjJcY2qD0jXco1S7D00OfqAnN4tqxVtj4ddLJVZ3bLIAHn7r3P3JB4iT+3daBNTTa17vH1k2XA==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-4.5.1.tgz", + "integrity": "sha512-N4aFZ0AzYiFCzocqbW971M8LOIKo9E8d4lt5He4x8Jcm19hwYYlNy8wwnOv1USCxFO/uCPZm/RTkARlyjOL10A==", "dependencies": { "@graphql-tools/merge": "^9.0.1", "@subsquid/graphiql-console": "^0.3.0", - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-commander": "^1.3.2", "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-http-server": "^1.2.2", + "@subsquid/util-internal-http-server": "^2.0.0", "@subsquid/util-naming": "^1.2.2", "apollo-server-core": "^3.13.0", "apollo-server-express": "^3.13.0", @@ -1147,45 +1146,20 @@ } } }, - "node_modules/@subsquid/openreader/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/openreader/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/openreader/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, "node_modules/@subsquid/rpc-client": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@subsquid/rpc-client/-/rpc-client-4.6.0.tgz", - "integrity": "sha512-fVTsVOag6Ge7hRqV+st9p+E+BgQa5PPu1uJns5IXSrRtIuAuy++w0OsB3WNA+EC8DZarpllxi7I3snzJpis/xQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@subsquid/rpc-client/-/rpc-client-4.8.0.tgz", + "integrity": "sha512-cFtxw1O/8iWYcp/bJmErPTDnMOm1YHuK1MnDoMDlG+q+yCFW8YzvFayNwOjnzyIaJuwoluMeMw1euW3EOaRLAg==", "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-binary-heap": "^1.0.0", "@subsquid/util-internal-counters": "^1.3.2", + "@subsquid/util-internal-json-fix-unsafe-integers": "^0.0.0", "websocket": "^1.0.34" } }, - "node_modules/@subsquid/rpc-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/scale-codec": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@subsquid/scale-codec/-/scale-codec-4.0.1.tgz", @@ -1199,7 +1173,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@subsquid/scale-type-system/-/scale-type-system-1.0.2.tgz", "integrity": "sha512-bZSUGO/Hfnf/+luZ8lWEsGqr9iIiQeaifmXEiOGBpr5Ace6H+pPY3lFmDTPWigoqt7VxrhRO0jvk5RLAyeBJvg==", - "peer": true, "dependencies": { "@subsquid/util-internal": "^3.0.0" }, @@ -1207,12 +1180,6 @@ "@subsquid/scale-codec": "^4.0.1" } }, - "node_modules/@subsquid/scale-type-system/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "peer": true - }, "node_modules/@subsquid/ss58": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@subsquid/ss58/-/ss58-2.0.2.tgz", @@ -1232,50 +1199,40 @@ } }, "node_modules/@subsquid/substrate-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-data/-/substrate-data-4.0.1.tgz", - "integrity": "sha512-1eluGvrSiXuQZJdg9Ihtbem0Kl72Ahz54Nexi+UM2WviPmSn7XYA2k/OUBK9dD6KBIAFayN7r99S6YtDgJhrqA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-data/-/substrate-data-4.0.4.tgz", + "integrity": "sha512-Ad5B1f4I4SqmGJfOAjuKF5zD2B6VSYNx67XpfHcNMoT9yBc8tTf87EEYb37wty1K6s6ZZTh60zWec2dUviIltA==", "dependencies": { "@subsquid/scale-codec": "^4.0.1", - "@subsquid/substrate-data-raw": "^1.1.0", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/substrate-data-raw": "^1.1.2", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-range": "^0.1.0", + "@subsquid/util-internal-ingest-tools": "^1.1.2", + "@subsquid/util-internal-range": "^0.3.0", "@subsquid/util-xxhash": "^1.2.2", "@substrate/calc": "^0.2.8", "blake2b": "^2.1.4" }, "peerDependencies": { - "@subsquid/rpc-client": "^4.6.0", - "@subsquid/substrate-runtime": "^1.0.2" + "@subsquid/rpc-client": "^4.8.0", + "@subsquid/substrate-runtime": "^2.0.0" } }, "node_modules/@subsquid/substrate-data-raw": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-data-raw/-/substrate-data-raw-1.1.0.tgz", - "integrity": "sha512-wiFF2sE7enBSfr84voGdQ4o26nxB1lLF2PcuU7QJawebPWNtQCCcBfRCWZekaqhkF+Y/4uFpOI3krTFvqlo5rw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-data-raw/-/substrate-data-raw-1.1.2.tgz", + "integrity": "sha512-7avtgVy77acgPG8zBoJ9siTpuZ3stNdUojTP4RQeJrArpR4jbyh6Ui3Cv2nIfLPxNfVpV11qoPQ1XVKv7vb0vQ==", "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-range": "^0.1.0", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-ingest-tools": "^1.1.2", + "@subsquid/util-internal-range": "^0.3.0", "@subsquid/util-timeout": "^2.3.2" }, "peerDependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.6.0" + "@subsquid/logger": "^1.3.3", + "@subsquid/rpc-client": "^4.7.0" } }, - "node_modules/@subsquid/substrate-data-raw/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/substrate-data/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/substrate-metadata-explorer": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-3.1.2.tgz", @@ -1295,88 +1252,53 @@ "substrate-metadata-explorer": "bin/run.js" } }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "dev": true, - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, "node_modules/@subsquid/substrate-processor": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-8.1.1.tgz", - "integrity": "sha512-SB4rsNZDihzSy9PuVKi/KuoYhl/apnQaJAIAb7nBOYlk1kOzG3+jEEk3SxR53JYFuTelrwK/AY9lS4e+LwiDCg==", - "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.6.0", - "@subsquid/substrate-data": "^4.0.0", - "@subsquid/substrate-data-raw": "^1.0.1", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-archive-client": "^0.1.0", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-8.3.0.tgz", + "integrity": "sha512-EX6bzrCfmFErMayAqAEivCW7QmTc5gK/SDNLEoQXvVValAJgzXp1Ur/y58Isr5XsBogQ0OY8cSzQYD1dgkGqjA==", + "dependencies": { + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/rpc-client": "^4.8.0", + "@subsquid/substrate-data": "^4.0.4", + "@subsquid/substrate-data-raw": "^1.1.2", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-archive-client": "^0.1.2", "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-json": "^1.2.2", - "@subsquid/util-internal-processor-tools": "^4.0.0", - "@subsquid/util-internal-range": "^0.1.0" + "@subsquid/util-internal-ingest-tools": "^1.1.2", + "@subsquid/util-internal-json": "^1.2.3", + "@subsquid/util-internal-processor-tools": "^4.1.0", + "@subsquid/util-internal-range": "^0.3.0", + "@subsquid/util-internal-validation": "^0.4.0" }, "peerDependencies": { - "@subsquid/substrate-runtime": "^1.0.2" + "@subsquid/substrate-runtime": "^2.0.0" } }, - "node_modules/@subsquid/substrate-processor/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/substrate-runtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-runtime/-/substrate-runtime-1.0.3.tgz", - "integrity": "sha512-3uNZqyHKzoMkSHQTZIJl1G7NiKyFl4cmDzVY3dU0o4VZhGNUAmR+HecT3WBkMMYye6uhDAeXsbVECa3ZnMM3gQ==", - "peer": true, + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-runtime/-/substrate-runtime-2.0.0.tgz", + "integrity": "sha512-sjw0BmcUPnXasYqv9zuI8wb21Y2hyIPpz24ut9eBTVXUvdBobASw/6iFlQsFoxqzz39xxQfZIZsWXBet5AViAw==", "dependencies": { "@subsquid/scale-codec": "^4.0.1", "@subsquid/scale-type-system": "^1.0.2", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-hex": "^1.2.2", "@subsquid/util-naming": "^1.2.2", "@subsquid/util-xxhash": "^1.2.2", "blake2b": "^2.1.4" } }, - "node_modules/@subsquid/substrate-runtime/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "peer": true - }, "node_modules/@subsquid/substrate-typegen": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-8.0.2.tgz", - "integrity": "sha512-JraheRh2ZdM1BoVF79DjhU/BIifuIlwyo2/DmL0RuGaslk6F/VGJ0gWSTpCZr6A2F3hlNFzLvzeZPO/xgH/JMg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-8.1.0.tgz", + "integrity": "sha512-4wEuti5ldhUdzyguZQi7IImQFflXrzz9TjviuKXSChrePs5M1oMFhtJw5X5oMDBmRB/xDY9YLioNUPArxC6O3g==", "dev": true, "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3", "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-code-printer": "^1.2.2", "@subsquid/util-internal-config": "^2.2.2", "@subsquid/util-internal-read-lines": "^1.2.2", @@ -1387,32 +1309,17 @@ "squid-substrate-typegen": "bin/run.js" }, "peerDependencies": { - "@subsquid/substrate-runtime": "^1.0.2" - } - }, - "node_modules/@subsquid/substrate-typegen/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/substrate-typegen/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" + "@subsquid/substrate-runtime": "^2.0.0" } }, "node_modules/@subsquid/typeorm-codegen": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-codegen/-/typeorm-codegen-1.3.3.tgz", - "integrity": "sha512-6k1oRWnaBNX4GZX737dvZll925uZKt2or/oXNaQRnHAmrCISkIEz7dYkl6PFfppYuardch41FBSFmOQaovPCXw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/typeorm-codegen/-/typeorm-codegen-2.0.0.tgz", + "integrity": "sha512-AZ3rQr/uT3wOmequjfrfkp0sOl7XGj2yG33gNelJOTtbMOfqRucI82lP+eslnmiAORX2dzDvbs97hIvxpf2WMA==", "dev": true, "dependencies": { - "@subsquid/openreader": "^4.4.2", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/openreader": "^4.5.1", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-code-printer": "^1.2.2", "@subsquid/util-naming": "^1.2.2", "commander": "^11.1.0" @@ -1421,21 +1328,6 @@ "squid-typeorm-codegen": "bin/run.js" } }, - "node_modules/@subsquid/typeorm-codegen/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/typeorm-codegen/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, "node_modules/@subsquid/typeorm-config": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@subsquid/typeorm-config/-/typeorm-config-4.1.0.tgz", @@ -1477,54 +1369,34 @@ "typeorm": "^0.3.17" } }, - "node_modules/@subsquid/typeorm-migration/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/typeorm-migration/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, "node_modules/@subsquid/typeorm-store": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-store/-/typeorm-store-1.2.6.tgz", - "integrity": "sha512-fsQTEf9QUXny1qb3qEoH5U3aPYhOtN7fE+3K62w6qVK0h+/PJAtS0w16MeYtDlEQbzYud8ttmVSagV1A93qnRA==", - "peer": true, + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@subsquid/typeorm-store/-/typeorm-store-1.4.0.tgz", + "integrity": "sha512-Ff96ySH3btbGC8QgFkMEtuylz8lrBeAcbBSy/XF9pQLDdpun01yxekJwmKKPswQxYqSQgwEt38Nmp2jvC0BysQ==", "dependencies": { - "@subsquid/typeorm-config": "^4.0.0", - "@subsquid/util-internal": "^3.0.0" + "@subsquid/typeorm-config": "^4.1.0", + "@subsquid/util-internal": "^3.1.0" }, "peerDependencies": { "typeorm": "^0.3.17" } }, - "node_modules/@subsquid/typeorm-store/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "peer": true - }, "node_modules/@subsquid/util-internal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-1.1.0.tgz", - "integrity": "sha512-O6m666RDcWEw4vb3bmeNZKlAa1rGOHQvS0nhZFTBXnxZpqK/pU5N0jrQ7X/3is0pY2RKxFoxTurZjhv4QdxtqA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.1.0.tgz", + "integrity": "sha512-m1lIiy7Tc2+QR5Jcx9eGsVsB4ASR/bA5Z9gnB+qUy1BzYuz5FEiJOYCQm6J5Bt+VnYDYYyANEUMq4Cl3J5wuSg==" }, "node_modules/@subsquid/util-internal-archive-client": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-archive-client/-/util-internal-archive-client-0.1.0.tgz", - "integrity": "sha512-bXFNZvXduKzG3NjPLmFPU5B+r+UHXT45Yr5YOpgD9sZvrHbNc/n877jSEt1qnzUJKnTl1hxtXlXvpwIBEjKT3Q==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-archive-client/-/util-internal-archive-client-0.1.2.tgz", + "integrity": "sha512-XATZWOIHUqIuqzb9hxaFIsz/BItb5qLoYjk6uhFcR9ART2AExXLU5l26SvSrq3hUnqfznIkQMZVQ1SKqnGzx4g==", "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-range": "^0.1.0" + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-range": "^0.3.0" }, "peerDependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2" + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3" }, "peerDependenciesMeta": { "@subsquid/logger": { @@ -1532,11 +1404,6 @@ } } }, - "node_modules/@subsquid/util-internal-archive-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/util-internal-binary-heap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@subsquid/util-internal-binary-heap/-/util-internal-binary-heap-1.0.0.tgz", @@ -1547,6 +1414,14 @@ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-code-printer/-/util-internal-code-printer-1.2.2.tgz", "integrity": "sha512-uerf8T/FU4bxxhat09MgRrdmwifLwV+tO7QvlMvZ5ccwaVrJjHs+0/LY/h1e9YowH3+ZtwPqjYrd5tNOHWX8wA==" }, + "node_modules/@subsquid/util-internal-commander": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", + "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", + "peerDependencies": { + "commander": "^11.1.0" + } + }, "node_modules/@subsquid/util-internal-config": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/@subsquid/util-internal-config/-/util-internal-config-2.2.2.tgz", @@ -1568,24 +1443,25 @@ "integrity": "sha512-E43HVqf23jP5hvtWF9GsiN8luANjnJ1daR2SVTwaIUAYU/uNjv1Bi6tHz2uexlflBhyxAgBDmHgunXZ45wQTIw==" }, "node_modules/@subsquid/util-internal-http-server": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-http-server/-/util-internal-http-server-1.2.2.tgz", - "integrity": "sha512-B2SOSz8frUkXarbsELljew25iXFFyATEtS8NV31xKUXmhYfPklqrcF4YNJ/aLlfCtVOiR042YKVZDx2T8RbN6w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-http-server/-/util-internal-http-server-2.0.0.tgz", + "integrity": "sha512-MUAJGMuDjbA3B+KQFZmMkm9FuWVx067pINt+EWuq3fSZqYPr1kRkTCTSJK7uT6Q8omqJtJFRWveyOWlXmixvfg==", "dependencies": { + "@subsquid/logger": "^1.3.3", "stoppable": "^1.1.0" } }, "node_modules/@subsquid/util-internal-ingest-tools": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ingest-tools/-/util-internal-ingest-tools-1.1.0.tgz", - "integrity": "sha512-Zk5IPrclv+OrAV6EFQWGQS86YfN51/tLKKW137VzFPCWNEBSPCXu5lYe/hCwwW34k+gtf5TYLb3s69d2P1e/lg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ingest-tools/-/util-internal-ingest-tools-1.1.2.tgz", + "integrity": "sha512-1fgi4W6x1B2+fYLGwjo+R4FjbLvR2b9h2/0EEqT8Ww6o4V15EubLf1TjBr8o/AWGN5Y/eYaMqWlFzbQsKQlcUQ==", "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-range": "^0.1.0" + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-range": "^0.3.0" }, "peerDependencies": { - "@subsquid/util-internal-archive-client": "^0.1.0" + "@subsquid/util-internal-archive-client": "^0.1.2" }, "peerDependenciesMeta": { "@subsquid/util-internal-archive-client": { @@ -1593,62 +1469,52 @@ } } }, - "node_modules/@subsquid/util-internal-ingest-tools/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/util-internal-json": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json/-/util-internal-json-1.2.2.tgz", - "integrity": "sha512-+axQnlkIzscdy0T/vR1Dez/2NVCryWgB3OocMGJcx2GjhHVkmuJSLFqOdk9o90OocfQFC57NTZx22oa2yd+4Yw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json/-/util-internal-json-1.2.3.tgz", + "integrity": "sha512-H5qW5kG20IzVMpb7GhPbVRxGuACEf1DPIXE1+LNXYxt8t/GX4zQREQWHRvCB3lck+RORLJD3WJbQUtxN5UYB3Q==", "dependencies": { "@subsquid/util-internal-hex": "^1.2.2" } }, + "node_modules/@subsquid/util-internal-json-fix-unsafe-integers": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json-fix-unsafe-integers/-/util-internal-json-fix-unsafe-integers-0.0.0.tgz", + "integrity": "sha512-mtbN15IgXtV4yo98RQla+O3DhFwB28o3JTBrFuBc/i/qzxyZNbKoVdq/uczomGdXrHxGkWhTDe/istIQe9gn6w==" + }, "node_modules/@subsquid/util-internal-processor-tools": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-processor-tools/-/util-internal-processor-tools-4.0.1.tgz", - "integrity": "sha512-2+IOze7VkgUuJqRThzq6QDO+xNd6CAbPUgtjgOi6EB3/ImrJXEjENBOFzTVSTP0Ri+kT/CyoyBPniyGBGzogiA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-processor-tools/-/util-internal-processor-tools-4.1.0.tgz", + "integrity": "sha512-7yOsPTB+sTSntNa79NVHo+lHFFs/QtJttut0IYp89gXNEOhAZdJ2MrwawHVTW+DEZ+UILMOO356fos42On9yGw==", "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-counters": "^1.3.2", - "@subsquid/util-internal-prometheus-server": "^1.2.2", - "@subsquid/util-internal-range": "^0.1.0", + "@subsquid/util-internal-prometheus-server": "^1.3.0", + "@subsquid/util-internal-range": "^0.3.0", "prom-client": "^14.2.0" } }, - "node_modules/@subsquid/util-internal-processor-tools/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/util-internal-prometheus-server": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-prometheus-server/-/util-internal-prometheus-server-1.2.2.tgz", - "integrity": "sha512-KOjokVhs+qJOZSkM+NPZ/XE5bGvEGGJkVbMaJJfaZ+UfZQPQDfVJrI2rPV5D9FwzctxKG9b7lPArryBIUsgrZw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-prometheus-server/-/util-internal-prometheus-server-1.3.0.tgz", + "integrity": "sha512-E/ch5mxBg1CIGPsuAqUAQ7vVln2oTPm+Rl+0WYweH8JeZ81rD01XAmxhDuZzZnMMMzfZd9W4NlE4mCXbhSY1Ug==", "dependencies": { - "@subsquid/util-internal-http-server": "^1.2.2" + "@subsquid/util-internal-http-server": "^2.0.0" }, "peerDependencies": { "prom-client": "^14.2.0" } }, "node_modules/@subsquid/util-internal-range": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-range/-/util-internal-range-0.1.0.tgz", - "integrity": "sha512-+pJeJyH0oetqu2eRwOkP7NCSaCGzLpCCNpS9Fwi968RL+LfWSKn+wGUX6Ulf0afSslvrQ/34ZtyWdjyya1AGxA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-range/-/util-internal-range-0.3.0.tgz", + "integrity": "sha512-5/oDNW0TS66o4vWRzYSYXEfNnFRZsAzoi4pZNdPn7n1l+xV7ZTa0Y57XA6cP5hrWCaIYav4z1zECPngLDV/qeQ==", "dependencies": { - "@subsquid/util-internal": "^3.0.0", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-binary-heap": "^1.0.0" } }, - "node_modules/@subsquid/util-internal-range/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/util-internal-read-lines": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@subsquid/util-internal-read-lines/-/util-internal-read-lines-1.2.2.tgz", @@ -1660,6 +1526,19 @@ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ts-node/-/util-internal-ts-node-0.0.0.tgz", "integrity": "sha512-VBnrKrkNcqbT3hMLrjpEPuwMAihFhW9oUmK53bccBCCXrUiATNUblQD2S4IWd9/UBO5Q33ohpbE9sAodDq2DXw==" }, + "node_modules/@subsquid/util-internal-validation": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-validation/-/util-internal-validation-0.4.0.tgz", + "integrity": "sha512-YrwzbMd2Ez4ufCHDWc/AZpNqZ8LR/YCJ+1Aox5HF46INvkFVun5g5YI3HjXReMwvwrpT4Gsy+JvDTYvaHtTUlQ==", + "peerDependencies": { + "@subsquid/logger": "^1.3.3" + }, + "peerDependenciesMeta": { + "@subsquid/logger": { + "optional": true + } + } + }, "node_modules/@subsquid/util-naming": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@subsquid/util-naming/-/util-naming-1.2.2.tgz", @@ -1689,15 +1568,16 @@ "integrity": "sha512-1c3mxf35FBeOswduhy0Wil9s4exHahXFo974qa0Ci2AORX8JTxmwhBb10+3Ls9iWoTFwvgOaFr9v1HeRL5tCig==" }, "node_modules/@substrate/connect": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.8.7.tgz", - "integrity": "sha512-kJLSqiwsAC8eHsPBwUyVpp6cogs1b/4jxTiRfoWbbndmSSEqn3qkcwmYPmZud4pyJFX7FMXwzH28XaPRBGTaQQ==", + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.8.10.tgz", + "integrity": "sha512-DIyQ13DDlXqVFnLV+S6/JDgiGowVRRrh18kahieJxhgvzcWicw5eLc6jpfQ0moVVLBYkO7rctB5Wreldwpva8w==", + "deprecated": "versions below 1.x are no longer maintained", "optional": true, "dependencies": { "@substrate/connect-extension-protocol": "^2.0.0", - "@substrate/connect-known-chains": "^1.0.7", - "@substrate/light-client-extension-helpers": "^0.0.3", - "smoldot": "2.0.21" + "@substrate/connect-known-chains": "^1.1.4", + "@substrate/light-client-extension-helpers": "^0.0.6", + "smoldot": "2.0.22" } }, "node_modules/@substrate/connect-extension-protocol": { @@ -1707,23 +1587,23 @@ "optional": true }, "node_modules/@substrate/connect-known-chains": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@substrate/connect-known-chains/-/connect-known-chains-1.1.2.tgz", - "integrity": "sha512-XvyemTVqon+6EF2G7QL0fEXxjuz3nUNFgFV0TSWhSVpPb+Sfs+vfipbEZxGNouxvjCoJdr6CF0rwgGsrrKOnAA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@substrate/connect-known-chains/-/connect-known-chains-1.2.0.tgz", + "integrity": "sha512-BgcTHKteSAcEQs5ySNTYOO6ODQHVHwPgDrjYQhL0r8ZygY4cyXa5e2O//3tXNJiDopFHdqO8FBAy2Gbht0i0PA==", "optional": true }, "node_modules/@substrate/light-client-extension-helpers": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.3.tgz", - "integrity": "sha512-AkWX7Xpn0u8NdR7qAEwFzeobLvHiviqmsUTvN6wge8Rnlbk01Ftm2Ol8vdN6IhjWPTepF5MggibQVXKBUtZnZw==", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.6.tgz", + "integrity": "sha512-girltEuxQ1BvkJWmc8JJlk4ZxnlGXc/wkLcNguhY+UoDEMBK0LsdtfzQKIfrIehi4QdeSBlFEFBoI4RqPmsZzA==", "optional": true, "dependencies": { - "@polkadot-api/client": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@polkadot-api/json-rpc-provider": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@polkadot-api/json-rpc-provider-proxy": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@polkadot-api/substrate-client": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", + "@polkadot-api/json-rpc-provider": "0.0.1", + "@polkadot-api/json-rpc-provider-proxy": "0.0.1", + "@polkadot-api/observable-client": "0.1.0", + "@polkadot-api/substrate-client": "0.0.1", "@substrate/connect-extension-protocol": "^2.0.0", - "@substrate/connect-known-chains": "^1.0.7", + "@substrate/connect-known-chains": "^1.1.4", "rxjs": "^7.8.1" }, "peerDependencies": { @@ -1731,9 +1611,9 @@ } }, "node_modules/@substrate/ss58-registry": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.47.0.tgz", - "integrity": "sha512-6kuIJedRcisUJS2pgksEH2jZf3hfSIVzqtFzs/AyjTW3ETbMg5q1Bb7VWa0WYaT6dTrEXp/6UoXM5B9pSIUmcw==" + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.49.0.tgz", + "integrity": "sha512-leW6Ix4LD7XgvxT7+aobPWSw+WvPcN2Rxof1rmd0mNC5t2n99k1N7UNEvz7YEFSOUeHWmKIY7F5q8KeIqYoHfA==" }, "node_modules/@types/accepts": { "version": "1.3.7", @@ -1805,36 +1685,45 @@ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, "node_modules/@types/mime": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.4.tgz", - "integrity": "sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@types/qs": { - "version": "6.9.11", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", - "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==" + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", + "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==" }, "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dependencies": { "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" + "@types/node": "*", + "@types/send": "*" } }, "node_modules/accepts": { @@ -1850,11 +1739,14 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { @@ -2175,9 +2067,12 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", - "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -2301,14 +2196,6 @@ "ieee754": "^1.2.1" } }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, "node_modules/bufferutil": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", @@ -2404,6 +2291,14 @@ "npm": ">=5.0.0" } }, + "node_modules/cli-highlight/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/cli-highlight/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -2497,6 +2392,14 @@ "node": ">=12" } }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -2542,15 +2445,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "optional": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/cluster-key-slot": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", @@ -2576,11 +2470,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/content-disposition": { @@ -2603,9 +2497,9 @@ } }, "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "engines": { "node": ">= 0.6" } @@ -2662,12 +2556,15 @@ "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" }, "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" } }, "node_modules/data-uri-to-buffer": { @@ -2727,18 +2624,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "optional": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -2797,9 +2682,9 @@ } }, "node_modules/dotenv": { - "version": "16.4.4", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz", - "integrity": "sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==", + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "engines": { "node": ">=12" }, @@ -2820,17 +2705,6 @@ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, - "node_modules/easy-table": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz", - "integrity": "sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "optionalDependencies": { - "wcwidth": "^1.0.1" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -2888,13 +2762,14 @@ } }, "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", "hasInstallScript": true, "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", "next-tick": "^1.1.0" }, "engines": { @@ -2912,12 +2787,15 @@ } }, "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" } }, "node_modules/escalade": { @@ -2933,6 +2811,20 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -2941,22 +2833,31 @@ "node": ">= 0.6" } }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -2987,43 +2888,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/ext": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", @@ -3032,11 +2896,6 @@ "type": "^2.7.2" } }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3131,6 +2990,11 @@ "node": ">= 0.6" } }, + "node_modules/fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -3174,15 +3038,15 @@ } }, "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -3264,9 +3128,9 @@ } }, "node_modules/graphql-ws": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.15.0.tgz", - "integrity": "sha512-xWGAtm3fig9TIhSaNsg0FaDZ8Pyn/3re3RFlP4rhQcmjRDIPpk1EhRuNB+YSJtLzttyuToaDiNhwT1OMoGnJnw==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.16.0.tgz", + "integrity": "sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A==", "engines": { "node": ">=10" }, @@ -3302,9 +3166,9 @@ } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -3338,9 +3202,9 @@ } }, "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { "function-bind": "^1.1.2" }, @@ -3566,9 +3430,12 @@ } }, "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3603,19 +3470,25 @@ } }, "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3655,20 +3528,26 @@ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3817,9 +3696,9 @@ } }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3907,9 +3786,9 @@ } }, "node_modules/nock/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dependencies": { "ms": "2.1.2" }, @@ -3994,12 +3873,12 @@ } }, "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -4044,11 +3923,6 @@ "node": ">= 0.8" } }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, "node_modules/parse5": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", @@ -4084,11 +3958,11 @@ } }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { @@ -4112,15 +3986,13 @@ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, "node_modules/pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", + "version": "8.11.5", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.5.tgz", + "integrity": "sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==", + "dependencies": { + "pg-connection-string": "^2.6.4", + "pg-pool": "^3.6.2", + "pg-protocol": "^1.6.1", "pg-types": "^2.1.0", "pgpass": "1.x" }, @@ -4146,9 +4018,9 @@ "optional": true }, "node_modules/pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==" }, "node_modules/pg-int8": { "version": "1.0.1", @@ -4159,17 +4031,17 @@ } }, "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", "peerDependencies": { "pg": ">=8.0" } }, "node_modules/pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==" }, "node_modules/pg-types": { "version": "2.2.0", @@ -4194,6 +4066,14 @@ "split2": "^4.1.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postgres-array": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", @@ -4316,9 +4196,9 @@ } }, "node_modules/reflect-metadata": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", - "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==" + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", @@ -4353,23 +4233,6 @@ "node": ">= 4" } }, - "node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -4451,29 +4314,30 @@ } }, "node_modules/set-function-length": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", - "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dependencies": { - "define-data-property": "^1.1.2", + "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -4516,11 +4380,11 @@ } }, "node_modules/side-channel": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", - "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.7", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "object-inspect": "^1.13.1" @@ -4544,9 +4408,9 @@ } }, "node_modules/smoldot": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.21.tgz", - "integrity": "sha512-XFpf3CQZ2BbFwVqKSyJHP7mbTDJxT3saRr/WfnfgWv+pbmA/J0e/LdfV/3A+jg7gNTEG06EAiDPtzN8ouXTLLw==", + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.22.tgz", + "integrity": "sha512-B50vRgTY6v3baYH6uCgL15tfaag5tcS2o/P5q1OiXcKGv1axZDfz2dzzMuIkVpyMR2ug11F6EAtQlmYBQd292g==", "optional": true, "dependencies": { "ws": "^8.8.1" @@ -4623,6 +4487,14 @@ "node": ">=8" } }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -4665,15 +4537,12 @@ "node": ">=8" } }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=8" } }, "node_modules/supports-color": { @@ -4690,36 +4559,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/sync-fetch": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.5.2.tgz", - "integrity": "sha512-6gBqqkHrYvkH65WI2bzrDwrIKmt3U10s4Exnz3dYuE5Ah62FIfNv/F63inrNhu2Nyh3GH5f42GKU3RrSJoaUyQ==", - "dependencies": { - "node-fetch": "^2.6.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/sync-fetch/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/tdigest": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", @@ -4766,9 +4605,9 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" }, "node_modules/type-is": { "version": "1.6.18", @@ -4917,9 +4756,9 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -4990,19 +4829,10 @@ "node": ">= 0.8" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "optional": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/web-streams-polyfill": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", - "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", "engines": { "node": ">= 8" } @@ -5075,29 +4905,32 @@ } }, "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", - "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dependencies": { - "available-typed-arrays": "^1.0.6", - "call-bind": "^1.0.5", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.1" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5139,6 +4972,14 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -5200,9 +5041,9 @@ } }, "node_modules/xss": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.15.tgz", + "integrity": "sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==", "dependencies": { "commander": "^2.20.3", "cssfilter": "0.0.10" @@ -5286,6 +5127,14 @@ "node": ">=12" } }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", diff --git a/indexers/accounts-squid/package.json b/indexers/accounts-squid/package.json new file mode 100644 index 000000000..da2683127 --- /dev/null +++ b/indexers/accounts-squid/package.json @@ -0,0 +1,48 @@ +{ + "name": "accounts-squid", + "version": "1.0.0", + "private": true, + "engines": { + "node": ">=16" + }, + "repository": { + "type": "git", + "url": "https://github.com/autonomys/astral" + }, + "author": { + "name": "Autonomys", + "url": "https://www.autonomys.xyz" + }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, + "scripts": { + "typegen": "sqd typegen", + "codegen": "sqd codegen", + "migration": "sqd migration:generate", + "build": "rm -rf lib && tsc", + "process": "sqd process", + "deploy": "sqd deploy --org autonomys-labs .", + "format": "prettier --write 'src/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc" + }, + "dependencies": { + "@autonomys/auto-consensus": "^0.2.0", + "@autonomys/auto-utils": "^0.2.0", + "@subsquid/graphql-server": "^4.5.1", + "@subsquid/ss58": "^2.0.2", + "@subsquid/substrate-processor": "^8.3.0", + "@subsquid/typeorm-migration": "^1.3.0", + "@subsquid/typeorm-store": "^1.4.0", + "dotenv": "^16.4.5", + "pg": "8.11.5", + "typeorm": "^0.3.20" + }, + "devDependencies": { + "@subsquid/substrate-metadata-explorer": "^3.1.2", + "@subsquid/substrate-typegen": "^8.1.0", + "@subsquid/substrate-runtime": "^2.0.0", + "@subsquid/typeorm-codegen": "^2.0.0", + "@types/node": "^20.12.7", + "typescript": "^5.4.5" + } +} diff --git a/indexers/accounts-squid/schema.graphql b/indexers/accounts-squid/schema.graphql new file mode 100644 index 000000000..699c424c5 --- /dev/null +++ b/indexers/accounts-squid/schema.graphql @@ -0,0 +1,28 @@ +type Account @entity { + id: ID! @index + nonce: BigInt! + free: BigInt! + reserved: BigInt! + total: BigInt @index + createdAt: Int! @index + updatedAt: Int! @index +} + +type Transfer @entity { + id: ID! @index + extrinsicId: String! @index + eventId: String! @index + from: String! @index + to: String! @index + value: BigInt! + fee: BigInt! + success: Boolean! + timestamp: BigInt! @index + date: DateTime! @index + createdAt: Int! @index +} + +type SlackMessage @entity { + id: ID! @index + messageId: String! @index +} diff --git a/indexers/accounts-squid/squid.yaml b/indexers/accounts-squid/squid.yaml new file mode 100644 index 000000000..ddf2b45ce --- /dev/null +++ b/indexers/accounts-squid/squid.yaml @@ -0,0 +1,35 @@ +manifestVersion: subsquid.io/v0.1 +name: accounts-squid +version: 5 +description: Autonomys - Astral - Accounts Indexer +build: +deploy: + env: + HASURA_GRAPHQL_ADMIN_SECRET: '${{ secrets.HASURA_SECRET }}' + HASURA_GRAPHQL_UNAUTHORIZED_ROLE: user + HASURA_GRAPHQL_STRINGIFY_NUMERIC_TYPES: 'true' + addons: + postgres: + hasura: + processor: + cmd: + - sqd + - process:prod + env: + CONSENSUS_GATEWAY: ${{ secrets.CONSENSUS_GATEWAY }} + RPC_CONSENSUS_HTTP: ${{ secrets.RPC_CONSENSUS_ENDPOINT }} + SLACK_TOKEN: ${{ secrets.SLACK_TOKEN }} + SLACK_CONVERSATION_ID: ${{ secrets.SLACK_CONVERSATION_ID }} + api: + cmd: + - sqd + - serve:prod + +scale: + dedicated: true + addons: + postgres: + storage: 10G + profile: medium + processor: + profile: medium diff --git a/indexers/accounts-squid/src/main.ts b/indexers/accounts-squid/src/main.ts new file mode 100644 index 000000000..1a65a5a41 --- /dev/null +++ b/indexers/accounts-squid/src/main.ts @@ -0,0 +1,107 @@ +import { createConnection } from '@autonomys/auto-utils' +import { TypeormDatabase } from '@subsquid/typeorm-store' +import { assertNotNull } from '@subsquid/util-internal' +import { SlackMessage } from './model' +import { processor } from './processor' +import { getOrCreateAccount, getOrCreateTransfer } from './storage' +import { events } from './types' +import { account } from './types/system/storage' +import { getBlockNumber, hexToAccount, logBlock } from './utils' +import { Cache, LastSlackMsg, load, save } from './utils/cache' +import { sendSlackStatsMessage } from './utils/slack' + +const types = { + Solution: { + public_key: 'AccountId32', + reward_address: 'AccountId32', + }, + SubPreDigest: { + slot: 'u64', + solution: 'Solution', + }, +} + +processor.run(new TypeormDatabase({ supportHotBlocks: true }), async (ctx) => { + const api = await createConnection( + assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC_CONSENSUS_HTTP env'), + { types }, + ) + + let cache: Cache = await load(ctx) + + const logMsg = logBlock(ctx.blocks) + const lastSlackMsgKey: LastSlackMsg = 'lastSlackMsg' + const lastSlackMsg = cache.slackMessages.get(lastSlackMsgKey) + const slackMsg = await sendSlackStatsMessage( + logMsg, + lastSlackMsg ? lastSlackMsg.messageId : undefined, + ) + if (slackMsg) + cache.slackMessages.set( + lastSlackMsgKey, + new SlackMessage({ + id: lastSlackMsgKey, + messageId: slackMsg, + }), + ) + cache.isModified = true + + for (let block of ctx.blocks) { + for (const extrinsic of block.extrinsics) { + for (const event of extrinsic.events) { + if (event.name === events.balances.transfer.name) { + const from = hexToAccount(event.args.from) + const to = hexToAccount(event.args.to) + const amount = BigInt(event.args.amount) + + const blockNumber = getBlockNumber(block) + + const fromAct = await account.v0.get(block.header, event.args.from) + const toAct = await account.v0.get(block.header, event.args.to) + + if (fromAct) { + const fromAccount = getOrCreateAccount(cache, block, from) + fromAccount.nonce = BigInt(fromAct.nonce) + fromAccount.free = fromAct.data.free + fromAccount.reserved = fromAct.data.reserved + fromAccount.total = fromAct.data.free + fromAct.data.reserved + fromAccount.updatedAt = blockNumber + + cache.accounts.set(fromAccount.id, fromAccount) + } + + if (toAct) { + const toAccount = getOrCreateAccount(cache, block, to) + toAccount.nonce = BigInt(toAct.nonce) + toAccount.free = toAct.data.free + toAccount.reserved = toAct.data.reserved + toAccount.total = toAct.data.free + toAct.data.reserved + toAccount.updatedAt = blockNumber + + cache.accounts.set(toAccount.id, toAccount) + } + + const transfer = getOrCreateTransfer(cache, block, event.id, { + extrinsicId: extrinsic.id, + eventId: event.id, + from, + to, + value: amount, + fee: BigInt(extrinsic.fee ?? 0), + success: extrinsic.success, + timestamp: BigInt(block.header.timestamp ?? 0), + }) + cache.transfers.set(transfer.id, transfer) + + cache.isModified = true + } + } + } + + if (block.header.height % 100 === 0) await save(ctx, cache) + } + + await save(ctx, cache) + + await api.disconnect() +}) diff --git a/indexers/accounts-squid/src/processor.ts b/indexers/accounts-squid/src/processor.ts new file mode 100644 index 000000000..9d31ccc26 --- /dev/null +++ b/indexers/accounts-squid/src/processor.ts @@ -0,0 +1,75 @@ +import { + BlockHeader, + DataHandlerContext, + SubstrateBatchProcessor, + SubstrateBatchProcessorFields, + Call as _Call, + Event as _Event, + Extrinsic as _Extrinsic, +} from '@subsquid/substrate-processor' +import { assertNotNull } from '@subsquid/util-internal' +import { events } from './types' + +export const processor = new SubstrateBatchProcessor() + .setGateway(assertNotNull(process.env.CONSENSUS_GATEWAY, 'No Gateway endpoint supplied')) + .setRpcEndpoint({ + url: assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC endpoint supplied'), + // More RPC connection options at https://docs.subsquid.io/substrate-indexing/setup/general/#set-data-source + rateLimit: 10, + }) + .setBlockRange({ + from: 0, + }) + .addEvent({ + name: [ + // accounts + events.balances.transfer.name, + events.system.extrinsicSuccess.name, + events.transactionPayment.transactionFeePaid.name, + // operators & nominators + events.domains.operatorRewarded.name, + events.domains.operatorTaxCollected.name, + events.domains.operatorRegistered.name, + events.domains.operatorNominated.name, + events.domains.withdrewStake.name, + events.domains.storageFeeDeposited.name, + ], + call: true, + stack: true, + extrinsic: true, + }) + .setFields({ + block: { + height: true, + hash: true, + timestamp: true, + }, + extrinsic: { + index: true, + version: true, + fee: true, + success: true, + hash: true, + }, + call: { + address: true, + name: true, + args: true, + origin: true, + }, + event: { + name: true, + args: true, + }, + }) + +export type Fields = SubstrateBatchProcessorFields +export type Block = BlockHeader +export type Event = _Event +export type Call = _Call +export type Extrinsic = _Extrinsic +export type ProcessorContext = DataHandlerContext +export type Ctx = ProcessorContext +export type CtxBlock = Ctx['blocks'][0] +export type CtxExtrinsic = CtxBlock['extrinsics'][0] +export type CtxEvent = CtxExtrinsic['events'][0] diff --git a/indexers/accounts-squid/src/storage/account.ts b/indexers/accounts-squid/src/storage/account.ts new file mode 100644 index 000000000..4f7870e65 --- /dev/null +++ b/indexers/accounts-squid/src/storage/account.ts @@ -0,0 +1,35 @@ +import { Account } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' + +export const createAccount = ( + block: CtxBlock, + address: string, + props: Partial = {}, +): Account => { + const blockNumber = getBlockNumber(block) + return new Account({ + id: address, + nonce: props.nonce ?? BigInt(0), + free: props.free ?? BigInt(0), + reserved: props.reserved ?? BigInt(0), + total: props.total ?? BigInt(0), + ...props, + createdAt: blockNumber, + updatedAt: blockNumber, + }) +} + +export const getOrCreateAccount = ( + cache: Cache, + block: CtxBlock, + address: string, + props: Partial = {}, +): Account => { + const account = cache.accounts.get(address) + + if (!account) return createAccount(block, address, props) + + return account +} diff --git a/indexers/accounts-squid/src/storage/index.ts b/indexers/accounts-squid/src/storage/index.ts new file mode 100644 index 000000000..86b44af1f --- /dev/null +++ b/indexers/accounts-squid/src/storage/index.ts @@ -0,0 +1,3 @@ +export * from './account' +export * from './transfer' + diff --git a/indexers/accounts-squid/src/storage/transfer.ts b/indexers/accounts-squid/src/storage/transfer.ts new file mode 100644 index 000000000..8b93a5c81 --- /dev/null +++ b/indexers/accounts-squid/src/storage/transfer.ts @@ -0,0 +1,38 @@ +import { Transfer } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' + +export const createTransfer = ( + block: CtxBlock, + id: string, + props: Partial = {}, +): Transfer => { + const blockNumber = getBlockNumber(block) + return new Transfer({ + id: id, + extrinsicId: props.extrinsicId ?? '', + eventId: props.eventId ?? '', + from: props.from ?? '', + to: props.to ?? '', + value: props.value ?? BigInt(0), + fee: props.fee ?? BigInt(0), + success: props.success ?? false, + timestamp: props.timestamp ?? BigInt(0), + date: props.date ?? getTimestamp(block), + createdAt: blockNumber, + }) +} + +export const getOrCreateTransfer = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {}, +): Transfer => { + const transfer = cache.transfers.get(id) + + if (!transfer) return createTransfer(block, id, props) + + return transfer +} diff --git a/indexers/accounts-squid/src/utils/cache.ts b/indexers/accounts-squid/src/utils/cache.ts new file mode 100644 index 000000000..831960f03 --- /dev/null +++ b/indexers/accounts-squid/src/utils/cache.ts @@ -0,0 +1,104 @@ +import { Store } from '@subsquid/typeorm-store' +import { Entity } from '@subsquid/typeorm-store/src/store' +import { + Account, + SlackMessage, + Transfer +} from '../model' +import type { Ctx } from '../processor' + +export type PermanentCache = { + slackMessages: Map +} + +export type TemporaryCache = { + accounts: Map + transfers: Map +} + +export type LastSlackMsg = `lastSlackMsg` +export const lastSlackMsgKey: LastSlackMsg = 'lastSlackMsg' + +type InternalKeyStore = LastSlackMsg + +type CacheManager = { + isModified: boolean + internalKeyStore: Map +} + +export type Cache = PermanentCache & TemporaryCache & CacheManager + +export const initPermanentCache: PermanentCache = { + slackMessages: new Map(), +} + +export const initTemporaryCache: TemporaryCache = { + accounts: new Map(), + transfers: new Map(), +} + +export const initCacheManager: CacheManager = { + isModified: false, + internalKeyStore: new Map(), +} + +export const initCache: Cache = { + ...initPermanentCache, + ...initTemporaryCache, + ...initCacheManager, +} + +export const load = async (ctx: Ctx): Promise => { + const [slackMessages] = await Promise.all([ + ctx.store.find(SlackMessage), + ]) + + console.log( + '\x1b[32mLoaded in cache:\x1b[0m', + slackMessages.length + ' slackMessages', + ) + + return { + ...initCache, + slackMessages: new Map(slackMessages.map((s) => [s.id, s])), + } +} + +const saveEntry = async (ctx: Ctx, cache: Cache, name: keyof Cache) => { + try { + const entity = cache[name] as unknown as Map + if (entity.size === 0) return + + await ctx.store.save(Array.from(entity.values())) + } catch (e) { + console.error(`Failed to save ${name} with error:`, e) + } +} + +const logEntry = (name: string, entry: Map) => + entry.size > 0 ? entry.size + ' ' + name + ', ' : '' + +export const save = async (ctx: Ctx, cache: Cache) => { + // If the cache is not modified, skip saving + if (!cache.isModified) return + + let logPerm = logEntry('slackMessages', cache.slackMessages) + + let logTemp = logEntry('accounts', cache.accounts) + logTemp += logEntry('transfers', cache.transfers) + + console.log('\x1b[34mSaving in database:\x1b[0m', logPerm) + console.log(' and ', logTemp, '\n') + + await Promise.all( + Object.keys(cache).map((k) => + !Object.keys(initCacheManager).includes(k) ? saveEntry(ctx, cache, k as keyof Cache) : null, + ), + ) + + // Clear the cache for entries not needed for reference + cache.accounts.clear() + cache.transfers.clear() + + cache.isModified = false +} diff --git a/indexers/accounts-squid/src/utils/index.ts b/indexers/accounts-squid/src/utils/index.ts new file mode 100644 index 000000000..840dc9c24 --- /dev/null +++ b/indexers/accounts-squid/src/utils/index.ts @@ -0,0 +1,40 @@ +import { DEFAULT_SS58_FORMAT } from '@autonomys/auto-utils' +import { codec } from '@subsquid/ss58' +import { Store } from '@subsquid/typeorm-store' +import { decodeHex } from '@subsquid/util-internal-hex' +import type { CtxBlock, ProcessorContext } from '../processor' + +export const hexToAccount = (hex: string): string => { + try { + return codec(DEFAULT_SS58_FORMAT).encode(decodeHex(hex)) + } catch (error) { + console.error('Failed to convert hex to account:', error) + return '' + } +} + +export const getCallSigner = ( + call: ProcessorContext['blocks'][0]['extrinsics'][0]['call'], +): string => { + try { + return hexToAccount((call as any).origin.value.value) + } catch (error) { + console.error('Failed to get call signer:', error) + return '' + } +} + +export const getBlockNumber = (block: CtxBlock): number => block.header.height + +export const getTimestamp = (block: CtxBlock): Date => new Date(block.header.timestamp ?? 0) + +export const logBlock = (blocks: CtxBlock[]): string => { + const from = getBlockNumber(blocks[0]) + const to = getBlockNumber(blocks[blocks.length - 1]) + console.log( + '\x1b[33mProcessing ' + blocks.length + ' blocks\x1b[0m', + 'From ' + from, + 'to ' + to + ' (' + (to - from) + ' blocks)', + ) + return 'Processing ' + blocks.length + ' blocks, ' + 'From ' + from + 'to ' + to + ' (' + (to - from) + ' blocks)' +} \ No newline at end of file diff --git a/indexers/accounts-squid/src/utils/slack.ts b/indexers/accounts-squid/src/utils/slack.ts new file mode 100644 index 000000000..37ef864a7 --- /dev/null +++ b/indexers/accounts-squid/src/utils/slack.ts @@ -0,0 +1,77 @@ +interface SlackBlock { + type: string + text: { + type: string + text: string + } +} + +interface SlackPayload { + channel: string + text: string + blocks: SlackBlock[] + ts?: string +} + +export const sendSlackMessage = async ( + message: string, + blocks: SlackBlock[], + messageIdToEdit?: string, +): Promise => { + const token = process.env.SLACK_TOKEN + const conversationId = process.env.SLACK_CONVERSATION_ID || '' + const url = messageIdToEdit + ? 'https://slack.com/api/chat.update' + : 'https://slack.com/api/chat.postMessage' + + const payload: SlackPayload = { + channel: conversationId, + text: message, + blocks: blocks, + } + + if (messageIdToEdit) { + payload.ts = messageIdToEdit + } + + try { + const response = await fetch(url, { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=utf-8', + Authorization: `Bearer ${token}`, + }, + body: JSON.stringify(payload), + }) + + const data = await response.json() + + if (!data.ok) { + throw new Error(data.error) + } + + return data.ts || undefined + } catch (e) { + console.error('Error sending slack message', e) + } +} + +export const sendSlackStatsMessage = async (text: string, messageIdToEdit?: string) => { + const blocks: SlackBlock[] = [ + { + type: 'header', + text: { + type: 'plain_text', + text: 'Consensus Indexer Stats', + }, + }, + { + type: 'section', + text: { + type: 'mrkdwn', + text, + }, + }, + ] + return await sendSlackMessage('Last block processed', blocks, messageIdToEdit) +} \ No newline at end of file diff --git a/indexers/account-squid/tsconfig.json b/indexers/accounts-squid/tsconfig.json similarity index 100% rename from indexers/account-squid/tsconfig.json rename to indexers/accounts-squid/tsconfig.json diff --git a/indexers/account-squid/typegen.json b/indexers/accounts-squid/typegen.json similarity index 77% rename from indexers/account-squid/typegen.json rename to indexers/accounts-squid/typegen.json index 17eca73b8..e4f3aeb3d 100644 --- a/indexers/account-squid/typegen.json +++ b/indexers/accounts-squid/typegen.json @@ -2,59 +2,47 @@ "outDir": "src/types", "specVersions": "gemini3h.jsonl", "pallets": { - "System": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Utility": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Timestamp": { + "Balances": { "events": true, "calls": true, "storage": true, "constants": true }, - "TransactionFees": { + "Subspace": { "events": true, "calls": true, "storage": true, "constants": true }, - "Balances": { + "Domains": { "events": true, "calls": true, "storage": true, "constants": true }, - "Domains": { + "Rewards": { "events": true, "calls": true, "storage": true, "constants": true }, - "Rewards": { + "TransactionFees": { "events": true, "calls": true, "storage": true, "constants": true }, - "Messenger": { + "TransactionPayment": { "events": true, "calls": true, "storage": true, "constants": true }, - "Subspace": { + "System": { "events": true, "calls": true, "storage": true, "constants": true } } -} +} \ No newline at end of file diff --git a/indexers/consensus-squid/.env b/indexers/consensus-squid/.env new file mode 100644 index 000000000..a56841d1d --- /dev/null +++ b/indexers/consensus-squid/.env @@ -0,0 +1,13 @@ +DB_URL=postgres://postgres:postgres@localhost:5432/consensus + +# DB_NAME=squid +# DB_NAME=consensus-squid +# DB_PORT=23798 +GQL_PORT=4350 + +RPC_CONSENSUS_HTTP=wss://rpc-0.gemini-3h.subspace.network/ws +CONSENSUS_GATEWAY="https://v2.archive.subsquid.io/network/gemini-3h" +RPC_CONSENSUS_HTTP="wss://rpc-squids.gemini-3h.subspace.network/ws" + +SLACK_TOKEN="xoxb-" +SLACK_CONVERSATION_ID="C0" \ No newline at end of file diff --git a/indexers/account-squid/.gitignore b/indexers/consensus-squid/.gitignore similarity index 66% rename from indexers/account-squid/.gitignore rename to indexers/consensus-squid/.gitignore index 03865ae03..b7db6c18c 100644 --- a/indexers/account-squid/.gitignore +++ b/indexers/consensus-squid/.gitignore @@ -7,5 +7,8 @@ # IDE files /.idea -/.env -/data \ No newline at end of file + +/db/ +/migrations/ +/src/model/ +/src/types/ \ No newline at end of file diff --git a/indexers/general-squid/.npmrc b/indexers/consensus-squid/.npmrc similarity index 100% rename from indexers/general-squid/.npmrc rename to indexers/consensus-squid/.npmrc diff --git a/indexers/consensus-squid/.prettierrc b/indexers/consensus-squid/.prettierrc new file mode 100644 index 000000000..49debf44c --- /dev/null +++ b/indexers/consensus-squid/.prettierrc @@ -0,0 +1,10 @@ +{ + "semi": false, + "tabWidth": 2, + "printWidth": 100, + "singleQuote": true, + "trailingComma": "all", + "jsxSingleQuote": true, + "bracketSpacing": true, + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/indexers/consensus-squid/.squidignore b/indexers/consensus-squid/.squidignore new file mode 100644 index 000000000..726f78c5f --- /dev/null +++ b/indexers/consensus-squid/.squidignore @@ -0,0 +1,7 @@ +node_modules +builds +lib +Dockerfile +.git +.github +.idea diff --git a/indexers/general-squid/LICENSE b/indexers/consensus-squid/LICENSE similarity index 96% rename from indexers/general-squid/LICENSE rename to indexers/consensus-squid/LICENSE index 7ef99c6a7..47cce4977 100644 --- a/indexers/general-squid/LICENSE +++ b/indexers/consensus-squid/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023 Subsquid Labs +Copyright (c) 2024 Autonomys Labs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/indexers/consensus-squid/README.md b/indexers/consensus-squid/README.md new file mode 100644 index 000000000..002ddf328 --- /dev/null +++ b/indexers/consensus-squid/README.md @@ -0,0 +1,194 @@ +# Consensus squid + +Our Consensus Indexer using [Squid](https://subsquid.io). +It is in use at [Astral - Consensus](https://explorer.autonomys.xyz/gemini-3h/consensus) Autonomys Explorer, Consensus section. + +## Summary + +- [Quickstart](#quickly-running-the-squid) +- [Development flow](#dev-flow) + - [Database Schema](#1-define-database-schema) + - [Entity classes](#2-generate-typeorm-classes) + - [DB migrations](#3-generate-database-migration) + - [Typegen for Events, Extrinsics and Storage Calls](#4-generate-typescript-definitions-for-substrate-events-calls-and-storage) +- [Deploy the Squid](#deploy-the-squid) +- [Conventions](#project-conventions) +- [Type Bundles](#types-bundle) + +## Prerequisites + +- node 16.x +- docker +- npm -- note that `yarn` package manager is not supported + +## Quickly running the squid + +Commands below use [sqd](https://docs.subsquid.io/squid-cli/). +Please [install](https://docs.subsquid.io/squid-cli/installation/) it before proceeding. + +```bash +# 1. Install dependencies +npm ci + +# 2. Start target Postgres database and detach +sqd up + +# 3. Build the project +sqd build + +# 4. Start both the squid processor and the GraphQL server +sqd run . +``` + +A GraphiQL playground will be available at [localhost:4350/graphql](http://localhost:4350/graphql). + +## Dev flow + +### 1. Define database schema + +Start development by defining the schema of the target database via `schema.graphql`. +Schema definition consists of regular graphql type declarations annotated with custom directives. +Full description of `schema.graphql` dialect is available [here](https://docs.subsquid.io/store/postgres/schema-file/). + +### 2. Generate TypeORM classes + +Mapping developers use [TypeORM](https://typeorm.io) entities +to interact with the target database during data processing. All necessary entity classes are +[generated](https://docs.subsquid.io/store/postgres/schema-file/intro/) by the squid framework from `schema.graphql`. This is done by running `npx squid-typeorm-codegen` +or (equivalently) `sqd codegen` command. + +### 3. Generate database migration + +All database changes are applied through migration files located at `db/migrations`. +`squid-typeorm-migration(1)` tool provides several commands to drive the process. +It is all [TypeORM](https://typeorm.io/#/migrations) under the hood. + +```bash +# Connect to database, analyze its state and generate migration to match the target schema. +# The target schema is derived from entity classes generated earlier. +# Don't forget to compile your entity classes beforehand! +npx squid-typeorm-migration generate + +# Create template file for custom database changes +npx squid-typeorm-migration create + +# Apply database migrations from `db/migrations` +npx squid-typeorm-migration apply + +# Revert the last performed migration +npx squid-typeorm-migration revert +``` + +Available `sqd` shortcuts: + +```bash +# Build the project, remove any old migrations, then run `npx squid-typeorm-migration generate` +sqd migration:generate + +# Run npx squid-typeorm-migration apply +sqd migration:apply +``` + +### 4. Generate TypeScript definitions for substrate events, calls and storage + +This is an optional part, but it is very advisable. + +Event, call and runtime storage data come to mapping handlers as raw untyped json. +While it is possible to work with raw untyped json data, +it's extremely error-prone and the json structure may change over time due to runtime upgrades. + +Squid framework provides a tool for generating type-safe wrappers around events, calls and runtime storage items for +each historical change in the spec version. See the [Substrate typegen](https://docs.subsquid.io/substrate-indexing/squid-substrate-typegen/) documentation page. + +## Deploy the Squid + +After a local run, obtain a deployment key by signing into [Subsquid Cloud](https://app.subsquid.io) and run + +```sh +npx sqd auth -k YOUR_DEPLOYMENT_KEY +``` + +Next, inspect the Squid CLI help to deploy and manage your squid: + +```sh +npx sqd squid --help +``` + +For more information, consult the [Deployment Guide](https://docs.subsquid.io/deploy-squid/). + +## Project conventions + +Squid tools assume a certain project layout. + +- All compiled js files must reside in `lib` and all TypeScript sources in `src`. + The layout of `lib` must reflect `src`. +- All TypeORM classes must be exported by `src/model/index.ts` (`lib/model` module). +- Database schema must be defined in `schema.graphql`. +- Database migrations must reside in `db/migrations` and must be plain js files. +- `squid-*(1)` executables consult `.env` file for a number of environment variables. + +See the [full desription](https://docs.subsquid.io/basics/squid-structure/) in the documentation. + +## Types bundle + +Substrate chains that have blocks with metadata versions below 14 don't provide enough +information to decode their data. For those chains, external [type](https://polkadot.js.org/docs/api/start/types.extend) [definitions](https://polkadot.js.org/docs/api/start/types.extend) are required. + +Subsquid tools include definitions for many chains, however sometimes external +definitions are still required. + +You can pass them as a special json file (types bundle) of the following structure: + +```json5 +{ + types: { + AccountId: "[u8; 32]", + }, + typesAlias: { + assets: { + Balance: "u64", + }, + }, + versions: [ + { + minmax: [0, 1000], // spec version range with inclusive boundaries + types: { + AccountId: "[u8; 16]", + }, + typesAlias: { + assets: { + Balance: "u32", + }, + }, + }, + ], +} +``` + +- `.types` - scale type definitions similar to [polkadot.js types](https://polkadot.js.org/docs/api/start/types.extend#extension) +- `.typesAlias` - similar to [polkadot.js type aliases](https://polkadot.js.org/docs/api/start/types.extend#type-clashes) +- `.versions` - per-block range overrides/patches for above fields. + +All fields in the type bundle are optional and applied on top of a fixed set of well-known frame types. + +Note, that although the structure of subsquid types bundle is very similar to the one from polkadot.js, +those two are not fully compatible. + +## Differences from polkadot.js + +Polkadot.js provides lots of [specialized classes](https://polkadot.js.org/docs/api/start/types.basics) for various types of data. +Even primitives like `u32` are exposed through special classes. +In contrast, the squid framework works only with plain js primitives and objects. +For instance, account data is passed to the handler context as a plain byte array. To convert it into a standard human-readable format one should explicitly use a utility lib `@subsquid/ss58`: + +```typescript + // ... + from: ss58.codec('kusama').encode(rec.from), + to: ss58.codec('kusama').encode(rec.to), +``` + +## Graphql server extensions + +It is possible to extend `squid-graphql-server(1)` with custom +[type-graphql](https://typegraphql.com) resolvers and to add request validation. +For more details, consult [docs](https://docs.subsquid.io/graphql-api/). diff --git a/indexers/rewards-squid/commands.json b/indexers/consensus-squid/commands.json similarity index 85% rename from indexers/rewards-squid/commands.json rename to indexers/consensus-squid/commands.json index 2e95a4be0..e36c754d1 100644 --- a/indexers/rewards-squid/commands.json +++ b/indexers/consensus-squid/commands.json @@ -14,10 +14,6 @@ "description": "Start a PG database", "cmd": ["docker", "compose", "up", "-d"] }, - "up-local": { - "description": "Start a PG database", - "cmd": ["docker", "compose", "-f", "docker-compose-local.yml", "up", "-d"] - }, "down": { "description": "Drop a PG database", "cmd": ["docker", "compose", "down"] @@ -61,12 +57,13 @@ }, "serve": { "description": "Start the GraphQL API server", - "cmd": ["squid-graphql-server"] + "cmd": ["squid-graphql-server", "--subscriptions"] }, "serve:prod": { "description": "Start the GraphQL API server with caching and limits", "cmd": [ "squid-graphql-server", + "--subscriptions", "--dumb-cache", "in-memory", "--dumb-cache-ttl", @@ -95,15 +92,6 @@ "open": { "description": "Open a local browser window", "cmd": ["npx", "--yes", "opener"] - }, - "metadata:explore": { - "description": "Explore the metadata of a Substrate chain", - "cmd": [ - "npx", - "substrate-metadata-explorer", - "--rpc=https://rpc-0.gemini-3h.subspace.network/ws", - "--out=gemini3h.jsonl" - ] } } } diff --git a/indexers/general-squid/gemini3h.jsonl b/indexers/consensus-squid/gemini3h.jsonl similarity index 100% rename from indexers/general-squid/gemini3h.jsonl rename to indexers/consensus-squid/gemini3h.jsonl diff --git a/indexers/rewards-squid/package-lock.json b/indexers/consensus-squid/package-lock.json similarity index 83% rename from indexers/rewards-squid/package-lock.json rename to indexers/consensus-squid/package-lock.json index d47959699..cdddb7680 100644 --- a/indexers/rewards-squid/package-lock.json +++ b/indexers/consensus-squid/package-lock.json @@ -1,28 +1,28 @@ { - "name": "rewards-squid", + "name": "staking-squid", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "rewards-squid", + "name": "staking-squid", "dependencies": { - "@belopash/typeorm-store": "^1.3.0", - "@polkadot/api": "^10.11.2", - "@subsquid/archive-registry": "^3.3.0", - "@subsquid/graphql-server": "^4.5.0", + "@autonomys/auto-consensus": "^0.2.0", + "@autonomys/auto-utils": "^0.2.0", + "@subsquid/graphql-server": "^4.5.1", "@subsquid/ss58": "^2.0.2", - "@subsquid/substrate-processor": "^8.1.1", + "@subsquid/substrate-processor": "^8.3.0", "@subsquid/typeorm-migration": "^1.3.0", - "dotenv": "^16.4.4", - "pg": "8.11.3", + "@subsquid/typeorm-store": "^1.4.0", + "dotenv": "^16.4.5", + "pg": "8.11.5", "typeorm": "^0.3.20" }, "devDependencies": { "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/substrate-typegen": "^8.0.2", - "@subsquid/typeorm-codegen": "^1.3.3", - "@types/node": "^20.11.17", - "typescript": "^5.3.3" + "@subsquid/substrate-typegen": "^8.1.0", + "@subsquid/typeorm-codegen": "^2.0.0", + "@types/node": "^20.12.7", + "typescript": "^5.4.5" }, "engines": { "node": ">=16" @@ -181,25 +181,23 @@ "xss": "^1.0.8" } }, - "node_modules/@belopash/typeorm-store": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@belopash/typeorm-store/-/typeorm-store-1.3.0.tgz", - "integrity": "sha512-OvXrZHP21tLKRK+8ysFfvlRHXFpEFz/Nj8GEzZOHn0jPzIpr15swNHVRx1xABLyG994P0H/JCR9FEu8e7z4Tag==", + "node_modules/@autonomys/auto-consensus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@autonomys/auto-consensus/-/auto-consensus-0.2.0.tgz", + "integrity": "sha512-2kfHOVOXgdhoMAcRP46J4Tk3qeuT/CHetJNtjcVPY0H3ojGPpmfaFg2jBenQqGz59TacjSjLhSouA5UlY7iDJg==", "dependencies": { - "@subsquid/logger": "^1.3.3", - "@subsquid/util-internal": "^3.1.0" - }, - "peerDependencies": { - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/typeorm-store": "^1.3.0", - "pg": "^8.11.3", - "typeorm": "^0.3.16" + "@autonomys/auto-utils": "^0.2.0" } }, - "node_modules/@belopash/typeorm-store/node_modules/@subsquid/util-internal": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.1.0.tgz", - "integrity": "sha512-m1lIiy7Tc2+QR5Jcx9eGsVsB4ASR/bA5Z9gnB+qUy1BzYuz5FEiJOYCQm6J5Bt+VnYDYYyANEUMq4Cl3J5wuSg==" + "node_modules/@autonomys/auto-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@autonomys/auto-utils/-/auto-utils-0.2.0.tgz", + "integrity": "sha512-uu4OxTWXGQk09HxmQsJQTmrcKAqwdTdGQy/zUloVm5/IAYPKmI1ttSPI/5BSUxeoKsBd69XFfb3wqtYfO5/ytw==", + "dependencies": { + "@polkadot/api": "^11.2.1", + "@polkadot/extension-dapp": "^0.47.5", + "fs": "^0.0.1-security" + } }, "node_modules/@exodus/schemasafe": { "version": "1.3.0", @@ -208,11 +206,11 @@ "dev": true }, "node_modules/@graphql-tools/merge": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz", - "integrity": "sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.3.tgz", + "integrity": "sha512-FeKv9lKLMwqDu0pQjPpF59GY3HReUkWXKsMIuMuJQOKh9BETu7zPEFUELvcw8w+lwZkl4ileJsHXC9+AnsT2Lw==", "dependencies": { - "@graphql-tools/utils": "^10.0.10", + "@graphql-tools/utils": "^10.0.13", "tslib": "^2.4.0" }, "engines": { @@ -275,12 +273,12 @@ } }, "node_modules/@graphql-tools/schema": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz", - "integrity": "sha512-TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.3.tgz", + "integrity": "sha512-p28Oh9EcOna6i0yLaCFOnkcBDQECVf3SCexT6ktb86QNj9idnkhI+tCxnwZDh58Qvjd2nURdkbevvoZkvxzCog==", "dependencies": { - "@graphql-tools/merge": "^9.0.1", - "@graphql-tools/utils": "^10.0.10", + "@graphql-tools/merge": "^9.0.3", + "@graphql-tools/utils": "^10.0.13", "tslib": "^2.4.0", "value-or-promise": "^1.0.12" }, @@ -292,9 +290,9 @@ } }, "node_modules/@graphql-tools/utils": { - "version": "10.0.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.13.tgz", - "integrity": "sha512-fMILwGr5Dm2zefNItjQ6C2rauigklv69LIwppccICuGTnGaOp3DspLt/6Lxj72cbg5d9z60Sr+Egco3CJKLsNg==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.1.2.tgz", + "integrity": "sha512-fX13CYsDnX4yifIyNdiN0cVygz/muvkreWWem6BBw130+ODbRRgfiVveL0NizCEnKXkpvdeTy9Bxvo9LIKlhrw==", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", "cross-inspect": "1.0.0", @@ -354,20 +352,20 @@ } }, "node_modules/@noble/curves": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", - "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", "dependencies": { - "@noble/hashes": "1.3.3" + "@noble/hashes": "1.4.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "engines": { "node": ">= 16" }, @@ -384,23 +382,84 @@ "node": ">=14" } }, + "node_modules/@polkadot-api/json-rpc-provider": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1.tgz", + "integrity": "sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA==", + "optional": true + }, + "node_modules/@polkadot-api/json-rpc-provider-proxy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1.tgz", + "integrity": "sha512-gmVDUP8LpCH0BXewbzqXF2sdHddq1H1q+XrAW2of+KZj4woQkIGBRGTJHeBEVHe30EB+UejR1N2dT4PO/RvDdg==", + "optional": true + }, + "node_modules/@polkadot-api/metadata-builders": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1.tgz", + "integrity": "sha512-GCI78BHDzXAF/L2pZD6Aod/yl82adqQ7ftNmKg51ixRL02JpWUA+SpUKTJE5MY1p8kiJJIo09P2um24SiJHxNA==", + "optional": true, + "dependencies": { + "@polkadot-api/substrate-bindings": "0.0.1", + "@polkadot-api/utils": "0.0.1" + } + }, + "node_modules/@polkadot-api/observable-client": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/observable-client/-/observable-client-0.1.0.tgz", + "integrity": "sha512-GBCGDRztKorTLna/unjl/9SWZcRmvV58o9jwU2Y038VuPXZcr01jcw/1O3x+yeAuwyGzbucI/mLTDa1QoEml3A==", + "optional": true, + "dependencies": { + "@polkadot-api/metadata-builders": "0.0.1", + "@polkadot-api/substrate-bindings": "0.0.1", + "@polkadot-api/substrate-client": "0.0.1", + "@polkadot-api/utils": "0.0.1" + }, + "peerDependencies": { + "rxjs": ">=7.8.0" + } + }, + "node_modules/@polkadot-api/substrate-bindings": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1.tgz", + "integrity": "sha512-bAe7a5bOPnuFVmpv7y4BBMRpNTnMmE0jtTqRUw/+D8ZlEHNVEJQGr4wu3QQCl7k1GnSV1wfv3mzIbYjErEBocg==", + "optional": true, + "dependencies": { + "@noble/hashes": "^1.3.1", + "@polkadot-api/utils": "0.0.1", + "@scure/base": "^1.1.1", + "scale-ts": "^1.6.0" + } + }, + "node_modules/@polkadot-api/substrate-client": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-client/-/substrate-client-0.0.1.tgz", + "integrity": "sha512-9Bg9SGc3AwE+wXONQoW8GC00N3v6lCZLW74HQzqB6ROdcm5VAHM4CB/xRzWSUF9CXL78ugiwtHx3wBcpx4H4Wg==", + "optional": true + }, + "node_modules/@polkadot-api/utils": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/utils/-/utils-0.0.1.tgz", + "integrity": "sha512-3j+pRmlF9SgiYDabSdZsBSsN5XHbpXOAce1lWj56IEEaFZVjsiCaxDOA7C9nCcgfVXuvnbxqqEGQvnY+QfBAUw==", + "optional": true + }, "node_modules/@polkadot/api": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-10.11.2.tgz", - "integrity": "sha512-AorCZxCWCoTtdbl4DPUZh+ACe/pbLIS1BkdQY0AFJuZllm0x/yWzjgampcPd5jQAA/O3iKShRBkZqj6Mk9yG/A==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-11.3.1.tgz", + "integrity": "sha512-q4kFIIHTLvKxM24b0Eo8hJevsPMme+aITJGrDML9BgdZYTRN14+cu5nXiCsQvaEamdyYj+uCXWe2OV9X7pPxsA==", "dependencies": { - "@polkadot/api-augment": "10.11.2", - "@polkadot/api-base": "10.11.2", - "@polkadot/api-derive": "10.11.2", + "@polkadot/api-augment": "11.3.1", + "@polkadot/api-base": "11.3.1", + "@polkadot/api-derive": "11.3.1", "@polkadot/keyring": "^12.6.2", - "@polkadot/rpc-augment": "10.11.2", - "@polkadot/rpc-core": "10.11.2", - "@polkadot/rpc-provider": "10.11.2", - "@polkadot/types": "10.11.2", - "@polkadot/types-augment": "10.11.2", - "@polkadot/types-codec": "10.11.2", - "@polkadot/types-create": "10.11.2", - "@polkadot/types-known": "10.11.2", + "@polkadot/rpc-augment": "11.3.1", + "@polkadot/rpc-core": "11.3.1", + "@polkadot/rpc-provider": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-augment": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/types-create": "11.3.1", + "@polkadot/types-known": "11.3.1", "@polkadot/util": "^12.6.2", "@polkadot/util-crypto": "^12.6.2", "eventemitter3": "^5.0.1", @@ -412,15 +471,15 @@ } }, "node_modules/@polkadot/api-augment": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-10.11.2.tgz", - "integrity": "sha512-PTpnqpezc75qBqUtgrc0GYB8h9UHjfbHSRZamAbecIVAJ2/zc6CqtnldeaBlIu1IKTgBzi3FFtTyYu+ZGbNT2Q==", - "dependencies": { - "@polkadot/api-base": "10.11.2", - "@polkadot/rpc-augment": "10.11.2", - "@polkadot/types": "10.11.2", - "@polkadot/types-augment": "10.11.2", - "@polkadot/types-codec": "10.11.2", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-11.3.1.tgz", + "integrity": "sha512-Yj+6rb6h0WwY3yJ+UGhjGW+tyMRFUMsKQuGw+eFsXdjiNU9UoXsAqA2dG7Q1F+oeX/g+y2gLGBezNoCwbl6HfA==", + "dependencies": { + "@polkadot/api-base": "11.3.1", + "@polkadot/rpc-augment": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-augment": "11.3.1", + "@polkadot/types-codec": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" }, @@ -429,12 +488,12 @@ } }, "node_modules/@polkadot/api-base": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-10.11.2.tgz", - "integrity": "sha512-4LIjaUfO9nOzilxo7XqzYKCNMtmUypdk8oHPdrRnSjKEsnK7vDsNi+979z2KXNXd2KFSCFHENmI523fYnMnReg==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-11.3.1.tgz", + "integrity": "sha512-b8UkNL00NN7+3QaLCwL5cKg+7YchHoKCAhwKusWHNBZkkO6Oo2BWilu0dZkPJOyqV9P389Kbd9+oH+SKs9u2VQ==", "dependencies": { - "@polkadot/rpc-core": "10.11.2", - "@polkadot/types": "10.11.2", + "@polkadot/rpc-core": "11.3.1", + "@polkadot/types": "11.3.1", "@polkadot/util": "^12.6.2", "rxjs": "^7.8.1", "tslib": "^2.6.2" @@ -444,16 +503,16 @@ } }, "node_modules/@polkadot/api-derive": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-10.11.2.tgz", - "integrity": "sha512-m3BQbPionkd1iSlknddxnL2hDtolPIsT+aRyrtn4zgMRPoLjHFmTmovvg8RaUyYofJtZeYrnjMw0mdxiSXx7eA==", - "dependencies": { - "@polkadot/api": "10.11.2", - "@polkadot/api-augment": "10.11.2", - "@polkadot/api-base": "10.11.2", - "@polkadot/rpc-core": "10.11.2", - "@polkadot/types": "10.11.2", - "@polkadot/types-codec": "10.11.2", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-11.3.1.tgz", + "integrity": "sha512-9dopzrh4cRuft1nANmBvMY/hEhFDu0VICMTOGxQLOl8NMfcOFPTLAN0JhSBUoicGZhV+c4vpv01NBx/7/IL1HA==", + "dependencies": { + "@polkadot/api": "11.3.1", + "@polkadot/api-augment": "11.3.1", + "@polkadot/api-base": "11.3.1", + "@polkadot/rpc-core": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", "@polkadot/util": "^12.6.2", "@polkadot/util-crypto": "^12.6.2", "rxjs": "^7.8.1", @@ -463,6 +522,46 @@ "node": ">=18" } }, + "node_modules/@polkadot/extension-dapp": { + "version": "0.47.6", + "resolved": "https://registry.npmjs.org/@polkadot/extension-dapp/-/extension-dapp-0.47.6.tgz", + "integrity": "sha512-GpV0MQGL5c4y5lVcQXP+tf6Nnyqau/9ZHQnQdsWosnrjR0n9iak8UgWl1hQEGqBp/nYi9TdvdA4uFvcIjv1Jng==", + "dependencies": { + "@polkadot/extension-inject": "0.47.6", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/api": "*", + "@polkadot/util": "*", + "@polkadot/util-crypto": "*" + } + }, + "node_modules/@polkadot/extension-inject": { + "version": "0.47.6", + "resolved": "https://registry.npmjs.org/@polkadot/extension-inject/-/extension-inject-0.47.6.tgz", + "integrity": "sha512-rDTHyjGBgNochLc5Us+H2YJXUb2HW4hJJ23+6B7Mv373mfBYtM1T1HDkIWzV/xNJmiboAQy4O41N71CmZq4j7g==", + "dependencies": { + "@polkadot/api": "^11.3.1", + "@polkadot/rpc-provider": "^11.3.1", + "@polkadot/types": "^11.3.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "@polkadot/x-global": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/api": "*", + "@polkadot/util": "*" + } + }, "node_modules/@polkadot/keyring": { "version": "12.6.2", "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-12.6.2.tgz", @@ -494,13 +593,13 @@ } }, "node_modules/@polkadot/rpc-augment": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-10.11.2.tgz", - "integrity": "sha512-9AhT0WW81/8jYbRcAC6PRmuxXqNhJje8OYiulBQHbG1DTCcjAfz+6VQBke9BwTStzPq7d526+yyBKD17O3zlAA==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-11.3.1.tgz", + "integrity": "sha512-2PaDcKNju4QYQpxwVkWbRU3M0t340nMX9cMo+8awgvgL1LliV/fUDZueMKLuSS910JJMTPQ7y2pK4eQgMt08gQ==", "dependencies": { - "@polkadot/rpc-core": "10.11.2", - "@polkadot/types": "10.11.2", - "@polkadot/types-codec": "10.11.2", + "@polkadot/rpc-core": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" }, @@ -509,13 +608,13 @@ } }, "node_modules/@polkadot/rpc-core": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-10.11.2.tgz", - "integrity": "sha512-Ot0CFLWx8sZhLZog20WDuniPA01Bk2StNDsdAQgcFKPwZw6ShPaZQCHuKLQK6I6DodOrem9FXX7c1hvoKJP5Ww==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-11.3.1.tgz", + "integrity": "sha512-KKNepsDd/mpmXcA6v/h14eFFPEzLGd7nrvx2UUXUxoZ0Fq2MH1hplP3s93k1oduNY/vOXJR2K9S4dKManA6GVQ==", "dependencies": { - "@polkadot/rpc-augment": "10.11.2", - "@polkadot/rpc-provider": "10.11.2", - "@polkadot/types": "10.11.2", + "@polkadot/rpc-augment": "11.3.1", + "@polkadot/rpc-provider": "11.3.1", + "@polkadot/types": "11.3.1", "@polkadot/util": "^12.6.2", "rxjs": "^7.8.1", "tslib": "^2.6.2" @@ -525,13 +624,13 @@ } }, "node_modules/@polkadot/rpc-provider": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-10.11.2.tgz", - "integrity": "sha512-he5jWMpDJp7e+vUzTZDzpkB7ps3H8psRally+/ZvZZScPvFEjfczT7I1WWY9h58s8+ImeVP/lkXjL9h/gUOt3Q==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-11.3.1.tgz", + "integrity": "sha512-pqERChoHo45hd3WAgW8UuzarRF+G/o/eXEbl0PXLubiayw4X4qCmIzmtntUcKYgxGNcYGZaG87ZU8OjN97m6UA==", "dependencies": { "@polkadot/keyring": "^12.6.2", - "@polkadot/types": "10.11.2", - "@polkadot/types-support": "10.11.2", + "@polkadot/types": "11.3.1", + "@polkadot/types-support": "11.3.1", "@polkadot/util": "^12.6.2", "@polkadot/util-crypto": "^12.6.2", "@polkadot/x-fetch": "^12.6.2", @@ -539,25 +638,25 @@ "@polkadot/x-ws": "^12.6.2", "eventemitter3": "^5.0.1", "mock-socket": "^9.3.1", - "nock": "^13.4.0", + "nock": "^13.5.0", "tslib": "^2.6.2" }, "engines": { "node": ">=18" }, "optionalDependencies": { - "@substrate/connect": "0.7.35" + "@substrate/connect": "0.8.10" } }, "node_modules/@polkadot/types": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-10.11.2.tgz", - "integrity": "sha512-d52j3xXni+C8GdYZVTSfu8ROAnzXFMlyRvXtor0PudUc8UQHOaC4+mYAkTBGA2gKdmL8MHSfRSbhcxHhsikY6Q==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-11.3.1.tgz", + "integrity": "sha512-5c7uRFXQTT11Awi6T0yFIdAfD6xGDAOz06Kp7M5S9OGNZY28wSPk5x6BYfNphWPaIBmHHewYJB5qmnrdYQAWKQ==", "dependencies": { "@polkadot/keyring": "^12.6.2", - "@polkadot/types-augment": "10.11.2", - "@polkadot/types-codec": "10.11.2", - "@polkadot/types-create": "10.11.2", + "@polkadot/types-augment": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/types-create": "11.3.1", "@polkadot/util": "^12.6.2", "@polkadot/util-crypto": "^12.6.2", "rxjs": "^7.8.1", @@ -568,12 +667,12 @@ } }, "node_modules/@polkadot/types-augment": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-10.11.2.tgz", - "integrity": "sha512-8eB8ew04wZiE5GnmFvEFW1euJWmF62SGxb1O+8wL3zoUtB9Xgo1vB6w6xbTrd+HLV6jNSeXXnbbF1BEUvi9cNg==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-11.3.1.tgz", + "integrity": "sha512-eR3HVpvUmB3v7q2jTWVmVfAVfb1/kuNn7ij94Zqadg/fuUq0pKqIOKwkUj3OxRM3A/5BnW3MbgparjKD3r+fyw==", "dependencies": { - "@polkadot/types": "10.11.2", - "@polkadot/types-codec": "10.11.2", + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" }, @@ -582,9 +681,9 @@ } }, "node_modules/@polkadot/types-codec": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-10.11.2.tgz", - "integrity": "sha512-3xjOQL+LOOMzYqlgP9ROL0FQnzU8lGflgYewzau7AsDlFziSEtb49a9BpYo6zil4koC+QB8zQ9OHGFumG08T8w==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-11.3.1.tgz", + "integrity": "sha512-i7IiiuuL+Z/jFoKTA9xeh4wGQnhnNNjMT0+1ohvlOvnFsoKZKFQQOaDPPntGJVL1JDCV+KjkN2uQKZSeW8tguQ==", "dependencies": { "@polkadot/util": "^12.6.2", "@polkadot/x-bigint": "^12.6.2", @@ -595,11 +694,11 @@ } }, "node_modules/@polkadot/types-create": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-10.11.2.tgz", - "integrity": "sha512-SJt23NxYvefRxVZZm6mT9ed1pR6FDoIGQ3xUpbjhTLfU2wuhpKjekMVorYQ6z/gK2JLMu2kV92Ardsz+6GX5XQ==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-11.3.1.tgz", + "integrity": "sha512-pBXtpz5FehcRJ6j5MzFUIUN8ZWM7z6HbqK1GxBmYbJVRElcGcOg7a/rL2pQVphU0Rx1E8bSO4thzGf4wUxSX7w==", "dependencies": { - "@polkadot/types-codec": "10.11.2", + "@polkadot/types-codec": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" }, @@ -608,14 +707,14 @@ } }, "node_modules/@polkadot/types-known": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-10.11.2.tgz", - "integrity": "sha512-kbEIX7NUQFxpDB0FFGNyXX/odY7jbp56RGD+Z4A731fW2xh/DgAQrI994xTzuh0c0EqPE26oQm3kATSpseqo9w==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-11.3.1.tgz", + "integrity": "sha512-3BIof7u6tn9bk3ZCIxA07iNoQ3uj4+vn3DTOjCKECozkRlt6V+kWRvqh16Hc0SHMg/QjcMb2fIu/WZhka1McUQ==", "dependencies": { "@polkadot/networks": "^12.6.2", - "@polkadot/types": "10.11.2", - "@polkadot/types-codec": "10.11.2", - "@polkadot/types-create": "10.11.2", + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/types-create": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" }, @@ -624,9 +723,9 @@ } }, "node_modules/@polkadot/types-support": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-10.11.2.tgz", - "integrity": "sha512-X11hoykFYv/3efg4coZy2hUOUc97JhjQMJLzDhHniFwGLlYU8MeLnPdCVGkXx0xDDjTo4/ptS1XpZ5HYcg+gRw==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-11.3.1.tgz", + "integrity": "sha512-jTFz1GKyF7nI29yIOq4v0NiWTOf5yX4HahJNeFD8TcxoLhF+6tH/XXqrUXJEfbaTlSrRWiW1LZYlb+snctqKHA==", "dependencies": { "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" @@ -917,9 +1016,9 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@scure/base": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz", - "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz", + "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", "funding": { "url": "https://paulmillr.com/funding/" } @@ -929,29 +1028,15 @@ "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==" }, - "node_modules/@subsquid/archive-registry": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/archive-registry/-/archive-registry-3.3.0.tgz", - "integrity": "sha512-moXnGNOSmKMHyuDvUiOHbpL7IePSo4XZOW9OnzESIND64eGxlKusIsCi8Nth1DgzbE/UTTFeNJvYKu0v7SOIqw==", - "dependencies": { - "@subsquid/util-internal": "^1.0.0", - "commander": "^10.0.0", - "easy-table": "^1.2.0", - "sync-fetch": "^0.5.2" - }, - "bin": { - "squid-archive-registry": "bin/run.js" - } - }, "node_modules/@subsquid/graphiql-console": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@subsquid/graphiql-console/-/graphiql-console-0.3.0.tgz", "integrity": "sha512-C89mus6IXnNi0xMQrZqUFBZwLj8tbuq9lye8Gq/lHmmERAUpi6UsWEyLdJLx2mneZzF3JtY8eNiiZ16jmjtvfw==" }, "node_modules/@subsquid/graphql-server": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-4.5.0.tgz", - "integrity": "sha512-SKCq6qF8FGrsrzFpjLzyDf3Cbcp4e8Z2M+t6Er3en7WLY3jZtdEGf3HbfCH6ukhQoJ72lUSNsESdwEoazOslRA==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-4.5.1.tgz", + "integrity": "sha512-PMC5Kc9ptjhrBIBRvvhkHiSRUEGJqv6Bc838VnvLtF5kMrGjSI+pPUiA5t+rhdfxywX1j+ZEdBpaRypAGo6Otw==", "dependencies": { "@apollo/utils.keyvadapter": "~1.1.2", "@apollo/utils.keyvaluecache": "~1.0.2", @@ -959,12 +1044,12 @@ "@graphql-tools/schema": "^10.0.2", "@graphql-tools/utils": "^10.0.11", "@keyv/redis": "~2.5.8", - "@subsquid/logger": "^1.3.2", - "@subsquid/openreader": "^4.5.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/openreader": "^4.5.1", "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-commander": "^1.3.2", - "@subsquid/util-internal-http-server": "^1.2.2", + "@subsquid/util-internal-http-server": "^2.0.0", "@subsquid/util-internal-ts-node": "^0.0.0", "apollo-server-core": "^3.13.0", "apollo-server-express": "^3.13.0", @@ -1002,42 +1087,16 @@ } } }, - "node_modules/@subsquid/graphql-server/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/graphql-server/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/graphql-server/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, "node_modules/@subsquid/http-client": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/http-client/-/http-client-1.3.2.tgz", - "integrity": "sha512-N9fXB2TCYzzT4CNoTibpgk4lMFNU463/ZQcSstPPMIpZA9QdDjY+mNdjLTi8L+4DzimgjEbwYfLQX5aINYvkMA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@subsquid/http-client/-/http-client-1.4.0.tgz", + "integrity": "sha512-y+exFBQygbdvhmMrXVMUMkSQnmW8w7jz7zbRSCvjJRfmzXLjIi9dOQT2eIGN7e9GY/MvsW/qpDJEWhIbkcHsuw==", "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", "node-fetch": "^3.3.2" } }, - "node_modules/@subsquid/http-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/logger": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@subsquid/logger/-/logger-1.3.3.tgz", @@ -1049,17 +1108,17 @@ } }, "node_modules/@subsquid/openreader": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-4.5.0.tgz", - "integrity": "sha512-A07K1TM0YY2iZjJcY2qD0jXco1S7D00OfqAnN4tqxVtj4ddLJVZ3bLIAHn7r3P3JB4iT+3daBNTTa17vH1k2XA==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-4.5.1.tgz", + "integrity": "sha512-N4aFZ0AzYiFCzocqbW971M8LOIKo9E8d4lt5He4x8Jcm19hwYYlNy8wwnOv1USCxFO/uCPZm/RTkARlyjOL10A==", "dependencies": { "@graphql-tools/merge": "^9.0.1", "@subsquid/graphiql-console": "^0.3.0", - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-commander": "^1.3.2", "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-http-server": "^1.2.2", + "@subsquid/util-internal-http-server": "^2.0.0", "@subsquid/util-naming": "^1.2.2", "apollo-server-core": "^3.13.0", "apollo-server-express": "^3.13.0", @@ -1084,45 +1143,20 @@ } } }, - "node_modules/@subsquid/openreader/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/openreader/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/openreader/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, "node_modules/@subsquid/rpc-client": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@subsquid/rpc-client/-/rpc-client-4.6.0.tgz", - "integrity": "sha512-fVTsVOag6Ge7hRqV+st9p+E+BgQa5PPu1uJns5IXSrRtIuAuy++w0OsB3WNA+EC8DZarpllxi7I3snzJpis/xQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@subsquid/rpc-client/-/rpc-client-4.8.0.tgz", + "integrity": "sha512-cFtxw1O/8iWYcp/bJmErPTDnMOm1YHuK1MnDoMDlG+q+yCFW8YzvFayNwOjnzyIaJuwoluMeMw1euW3EOaRLAg==", "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-binary-heap": "^1.0.0", "@subsquid/util-internal-counters": "^1.3.2", + "@subsquid/util-internal-json-fix-unsafe-integers": "^0.0.0", "websocket": "^1.0.34" } }, - "node_modules/@subsquid/rpc-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/scale-codec": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@subsquid/scale-codec/-/scale-codec-4.0.1.tgz", @@ -1144,12 +1178,6 @@ "@subsquid/scale-codec": "^4.0.1" } }, - "node_modules/@subsquid/scale-type-system/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "peer": true - }, "node_modules/@subsquid/ss58": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@subsquid/ss58/-/ss58-2.0.2.tgz", @@ -1169,50 +1197,40 @@ } }, "node_modules/@subsquid/substrate-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-data/-/substrate-data-4.0.1.tgz", - "integrity": "sha512-1eluGvrSiXuQZJdg9Ihtbem0Kl72Ahz54Nexi+UM2WviPmSn7XYA2k/OUBK9dD6KBIAFayN7r99S6YtDgJhrqA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-data/-/substrate-data-4.0.4.tgz", + "integrity": "sha512-Ad5B1f4I4SqmGJfOAjuKF5zD2B6VSYNx67XpfHcNMoT9yBc8tTf87EEYb37wty1K6s6ZZTh60zWec2dUviIltA==", "dependencies": { "@subsquid/scale-codec": "^4.0.1", - "@subsquid/substrate-data-raw": "^1.1.0", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/substrate-data-raw": "^1.1.2", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-range": "^0.1.0", + "@subsquid/util-internal-ingest-tools": "^1.1.2", + "@subsquid/util-internal-range": "^0.3.0", "@subsquid/util-xxhash": "^1.2.2", "@substrate/calc": "^0.2.8", "blake2b": "^2.1.4" }, "peerDependencies": { - "@subsquid/rpc-client": "^4.6.0", - "@subsquid/substrate-runtime": "^1.0.2" + "@subsquid/rpc-client": "^4.8.0", + "@subsquid/substrate-runtime": "^2.0.0" } }, "node_modules/@subsquid/substrate-data-raw": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-data-raw/-/substrate-data-raw-1.1.0.tgz", - "integrity": "sha512-wiFF2sE7enBSfr84voGdQ4o26nxB1lLF2PcuU7QJawebPWNtQCCcBfRCWZekaqhkF+Y/4uFpOI3krTFvqlo5rw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-data-raw/-/substrate-data-raw-1.1.2.tgz", + "integrity": "sha512-7avtgVy77acgPG8zBoJ9siTpuZ3stNdUojTP4RQeJrArpR4jbyh6Ui3Cv2nIfLPxNfVpV11qoPQ1XVKv7vb0vQ==", "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-range": "^0.1.0", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-ingest-tools": "^1.1.2", + "@subsquid/util-internal-range": "^0.3.0", "@subsquid/util-timeout": "^2.3.2" }, "peerDependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.6.0" + "@subsquid/logger": "^1.3.3", + "@subsquid/rpc-client": "^4.7.0" } }, - "node_modules/@subsquid/substrate-data-raw/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/substrate-data/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/substrate-metadata-explorer": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-3.1.2.tgz", @@ -1232,88 +1250,54 @@ "substrate-metadata-explorer": "bin/run.js" } }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "dev": true, - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, "node_modules/@subsquid/substrate-processor": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-8.1.1.tgz", - "integrity": "sha512-SB4rsNZDihzSy9PuVKi/KuoYhl/apnQaJAIAb7nBOYlk1kOzG3+jEEk3SxR53JYFuTelrwK/AY9lS4e+LwiDCg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-8.3.0.tgz", + "integrity": "sha512-EX6bzrCfmFErMayAqAEivCW7QmTc5gK/SDNLEoQXvVValAJgzXp1Ur/y58Isr5XsBogQ0OY8cSzQYD1dgkGqjA==", "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.6.0", - "@subsquid/substrate-data": "^4.0.0", - "@subsquid/substrate-data-raw": "^1.0.1", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-archive-client": "^0.1.0", + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/rpc-client": "^4.8.0", + "@subsquid/substrate-data": "^4.0.4", + "@subsquid/substrate-data-raw": "^1.1.2", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-archive-client": "^0.1.2", "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-json": "^1.2.2", - "@subsquid/util-internal-processor-tools": "^4.0.0", - "@subsquid/util-internal-range": "^0.1.0" + "@subsquid/util-internal-ingest-tools": "^1.1.2", + "@subsquid/util-internal-json": "^1.2.3", + "@subsquid/util-internal-processor-tools": "^4.1.0", + "@subsquid/util-internal-range": "^0.3.0", + "@subsquid/util-internal-validation": "^0.4.0" }, "peerDependencies": { - "@subsquid/substrate-runtime": "^1.0.2" + "@subsquid/substrate-runtime": "^2.0.0" } }, - "node_modules/@subsquid/substrate-processor/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/substrate-runtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-runtime/-/substrate-runtime-1.0.3.tgz", - "integrity": "sha512-3uNZqyHKzoMkSHQTZIJl1G7NiKyFl4cmDzVY3dU0o4VZhGNUAmR+HecT3WBkMMYye6uhDAeXsbVECa3ZnMM3gQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-runtime/-/substrate-runtime-2.0.0.tgz", + "integrity": "sha512-sjw0BmcUPnXasYqv9zuI8wb21Y2hyIPpz24ut9eBTVXUvdBobASw/6iFlQsFoxqzz39xxQfZIZsWXBet5AViAw==", "peer": true, "dependencies": { "@subsquid/scale-codec": "^4.0.1", "@subsquid/scale-type-system": "^1.0.2", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-hex": "^1.2.2", "@subsquid/util-naming": "^1.2.2", "@subsquid/util-xxhash": "^1.2.2", "blake2b": "^2.1.4" } }, - "node_modules/@subsquid/substrate-runtime/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "peer": true - }, "node_modules/@subsquid/substrate-typegen": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-8.0.2.tgz", - "integrity": "sha512-JraheRh2ZdM1BoVF79DjhU/BIifuIlwyo2/DmL0RuGaslk6F/VGJ0gWSTpCZr6A2F3hlNFzLvzeZPO/xgH/JMg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-8.1.0.tgz", + "integrity": "sha512-4wEuti5ldhUdzyguZQi7IImQFflXrzz9TjviuKXSChrePs5M1oMFhtJw5X5oMDBmRB/xDY9YLioNUPArxC6O3g==", "dev": true, "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3", "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-code-printer": "^1.2.2", "@subsquid/util-internal-config": "^2.2.2", "@subsquid/util-internal-read-lines": "^1.2.2", @@ -1324,32 +1308,17 @@ "squid-substrate-typegen": "bin/run.js" }, "peerDependencies": { - "@subsquid/substrate-runtime": "^1.0.2" - } - }, - "node_modules/@subsquid/substrate-typegen/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/substrate-typegen/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" + "@subsquid/substrate-runtime": "^2.0.0" } }, "node_modules/@subsquid/typeorm-codegen": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-codegen/-/typeorm-codegen-1.3.3.tgz", - "integrity": "sha512-6k1oRWnaBNX4GZX737dvZll925uZKt2or/oXNaQRnHAmrCISkIEz7dYkl6PFfppYuardch41FBSFmOQaovPCXw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/typeorm-codegen/-/typeorm-codegen-2.0.0.tgz", + "integrity": "sha512-AZ3rQr/uT3wOmequjfrfkp0sOl7XGj2yG33gNelJOTtbMOfqRucI82lP+eslnmiAORX2dzDvbs97hIvxpf2WMA==", "dev": true, "dependencies": { - "@subsquid/openreader": "^4.4.2", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/openreader": "^4.5.1", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-code-printer": "^1.2.2", "@subsquid/util-naming": "^1.2.2", "commander": "^11.1.0" @@ -1358,21 +1327,6 @@ "squid-typeorm-codegen": "bin/run.js" } }, - "node_modules/@subsquid/typeorm-codegen/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/typeorm-codegen/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, "node_modules/@subsquid/typeorm-config": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@subsquid/typeorm-config/-/typeorm-config-4.1.0.tgz", @@ -1414,24 +1368,10 @@ "typeorm": "^0.3.17" } }, - "node_modules/@subsquid/typeorm-migration/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/typeorm-migration/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, "node_modules/@subsquid/typeorm-store": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-store/-/typeorm-store-1.3.0.tgz", - "integrity": "sha512-32jwKA2fEYuGpyKEisKOlrz6JTd0hXTXOLC9S4IIsOnhkY70Ua69QDe0CCTgKTrvMNOCwk3gPR+q8RwrlEMupQ==", - "peer": true, + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@subsquid/typeorm-store/-/typeorm-store-1.4.0.tgz", + "integrity": "sha512-Ff96ySH3btbGC8QgFkMEtuylz8lrBeAcbBSy/XF9pQLDdpun01yxekJwmKKPswQxYqSQgwEt38Nmp2jvC0BysQ==", "dependencies": { "@subsquid/typeorm-config": "^4.1.0", "@subsquid/util-internal": "^3.1.0" @@ -1440,28 +1380,22 @@ "typeorm": "^0.3.17" } }, - "node_modules/@subsquid/typeorm-store/node_modules/@subsquid/util-internal": { + "node_modules/@subsquid/util-internal": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.1.0.tgz", - "integrity": "sha512-m1lIiy7Tc2+QR5Jcx9eGsVsB4ASR/bA5Z9gnB+qUy1BzYuz5FEiJOYCQm6J5Bt+VnYDYYyANEUMq4Cl3J5wuSg==", - "peer": true - }, - "node_modules/@subsquid/util-internal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-1.1.0.tgz", - "integrity": "sha512-O6m666RDcWEw4vb3bmeNZKlAa1rGOHQvS0nhZFTBXnxZpqK/pU5N0jrQ7X/3is0pY2RKxFoxTurZjhv4QdxtqA==" + "integrity": "sha512-m1lIiy7Tc2+QR5Jcx9eGsVsB4ASR/bA5Z9gnB+qUy1BzYuz5FEiJOYCQm6J5Bt+VnYDYYyANEUMq4Cl3J5wuSg==" }, "node_modules/@subsquid/util-internal-archive-client": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-archive-client/-/util-internal-archive-client-0.1.0.tgz", - "integrity": "sha512-bXFNZvXduKzG3NjPLmFPU5B+r+UHXT45Yr5YOpgD9sZvrHbNc/n877jSEt1qnzUJKnTl1hxtXlXvpwIBEjKT3Q==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-archive-client/-/util-internal-archive-client-0.1.2.tgz", + "integrity": "sha512-XATZWOIHUqIuqzb9hxaFIsz/BItb5qLoYjk6uhFcR9ART2AExXLU5l26SvSrq3hUnqfznIkQMZVQ1SKqnGzx4g==", "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-range": "^0.1.0" + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-range": "^0.3.0" }, "peerDependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2" + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3" }, "peerDependenciesMeta": { "@subsquid/logger": { @@ -1469,11 +1403,6 @@ } } }, - "node_modules/@subsquid/util-internal-archive-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/util-internal-binary-heap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@subsquid/util-internal-binary-heap/-/util-internal-binary-heap-1.0.0.tgz", @@ -1484,6 +1413,14 @@ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-code-printer/-/util-internal-code-printer-1.2.2.tgz", "integrity": "sha512-uerf8T/FU4bxxhat09MgRrdmwifLwV+tO7QvlMvZ5ccwaVrJjHs+0/LY/h1e9YowH3+ZtwPqjYrd5tNOHWX8wA==" }, + "node_modules/@subsquid/util-internal-commander": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", + "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", + "peerDependencies": { + "commander": "^11.1.0" + } + }, "node_modules/@subsquid/util-internal-config": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/@subsquid/util-internal-config/-/util-internal-config-2.2.2.tgz", @@ -1505,24 +1442,25 @@ "integrity": "sha512-E43HVqf23jP5hvtWF9GsiN8luANjnJ1daR2SVTwaIUAYU/uNjv1Bi6tHz2uexlflBhyxAgBDmHgunXZ45wQTIw==" }, "node_modules/@subsquid/util-internal-http-server": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-http-server/-/util-internal-http-server-1.2.2.tgz", - "integrity": "sha512-B2SOSz8frUkXarbsELljew25iXFFyATEtS8NV31xKUXmhYfPklqrcF4YNJ/aLlfCtVOiR042YKVZDx2T8RbN6w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-http-server/-/util-internal-http-server-2.0.0.tgz", + "integrity": "sha512-MUAJGMuDjbA3B+KQFZmMkm9FuWVx067pINt+EWuq3fSZqYPr1kRkTCTSJK7uT6Q8omqJtJFRWveyOWlXmixvfg==", "dependencies": { + "@subsquid/logger": "^1.3.3", "stoppable": "^1.1.0" } }, "node_modules/@subsquid/util-internal-ingest-tools": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ingest-tools/-/util-internal-ingest-tools-1.1.0.tgz", - "integrity": "sha512-Zk5IPrclv+OrAV6EFQWGQS86YfN51/tLKKW137VzFPCWNEBSPCXu5lYe/hCwwW34k+gtf5TYLb3s69d2P1e/lg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ingest-tools/-/util-internal-ingest-tools-1.1.2.tgz", + "integrity": "sha512-1fgi4W6x1B2+fYLGwjo+R4FjbLvR2b9h2/0EEqT8Ww6o4V15EubLf1TjBr8o/AWGN5Y/eYaMqWlFzbQsKQlcUQ==", "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-range": "^0.1.0" + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-range": "^0.3.0" }, "peerDependencies": { - "@subsquid/util-internal-archive-client": "^0.1.0" + "@subsquid/util-internal-archive-client": "^0.1.2" }, "peerDependenciesMeta": { "@subsquid/util-internal-archive-client": { @@ -1530,62 +1468,52 @@ } } }, - "node_modules/@subsquid/util-internal-ingest-tools/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/util-internal-json": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json/-/util-internal-json-1.2.2.tgz", - "integrity": "sha512-+axQnlkIzscdy0T/vR1Dez/2NVCryWgB3OocMGJcx2GjhHVkmuJSLFqOdk9o90OocfQFC57NTZx22oa2yd+4Yw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json/-/util-internal-json-1.2.3.tgz", + "integrity": "sha512-H5qW5kG20IzVMpb7GhPbVRxGuACEf1DPIXE1+LNXYxt8t/GX4zQREQWHRvCB3lck+RORLJD3WJbQUtxN5UYB3Q==", "dependencies": { "@subsquid/util-internal-hex": "^1.2.2" } }, + "node_modules/@subsquid/util-internal-json-fix-unsafe-integers": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json-fix-unsafe-integers/-/util-internal-json-fix-unsafe-integers-0.0.0.tgz", + "integrity": "sha512-mtbN15IgXtV4yo98RQla+O3DhFwB28o3JTBrFuBc/i/qzxyZNbKoVdq/uczomGdXrHxGkWhTDe/istIQe9gn6w==" + }, "node_modules/@subsquid/util-internal-processor-tools": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-processor-tools/-/util-internal-processor-tools-4.0.1.tgz", - "integrity": "sha512-2+IOze7VkgUuJqRThzq6QDO+xNd6CAbPUgtjgOi6EB3/ImrJXEjENBOFzTVSTP0Ri+kT/CyoyBPniyGBGzogiA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-processor-tools/-/util-internal-processor-tools-4.1.0.tgz", + "integrity": "sha512-7yOsPTB+sTSntNa79NVHo+lHFFs/QtJttut0IYp89gXNEOhAZdJ2MrwawHVTW+DEZ+UILMOO356fos42On9yGw==", "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-counters": "^1.3.2", - "@subsquid/util-internal-prometheus-server": "^1.2.2", - "@subsquid/util-internal-range": "^0.1.0", + "@subsquid/util-internal-prometheus-server": "^1.3.0", + "@subsquid/util-internal-range": "^0.3.0", "prom-client": "^14.2.0" } }, - "node_modules/@subsquid/util-internal-processor-tools/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/util-internal-prometheus-server": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-prometheus-server/-/util-internal-prometheus-server-1.2.2.tgz", - "integrity": "sha512-KOjokVhs+qJOZSkM+NPZ/XE5bGvEGGJkVbMaJJfaZ+UfZQPQDfVJrI2rPV5D9FwzctxKG9b7lPArryBIUsgrZw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-prometheus-server/-/util-internal-prometheus-server-1.3.0.tgz", + "integrity": "sha512-E/ch5mxBg1CIGPsuAqUAQ7vVln2oTPm+Rl+0WYweH8JeZ81rD01XAmxhDuZzZnMMMzfZd9W4NlE4mCXbhSY1Ug==", "dependencies": { - "@subsquid/util-internal-http-server": "^1.2.2" + "@subsquid/util-internal-http-server": "^2.0.0" }, "peerDependencies": { "prom-client": "^14.2.0" } }, "node_modules/@subsquid/util-internal-range": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-range/-/util-internal-range-0.1.0.tgz", - "integrity": "sha512-+pJeJyH0oetqu2eRwOkP7NCSaCGzLpCCNpS9Fwi968RL+LfWSKn+wGUX6Ulf0afSslvrQ/34ZtyWdjyya1AGxA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-range/-/util-internal-range-0.3.0.tgz", + "integrity": "sha512-5/oDNW0TS66o4vWRzYSYXEfNnFRZsAzoi4pZNdPn7n1l+xV7ZTa0Y57XA6cP5hrWCaIYav4z1zECPngLDV/qeQ==", "dependencies": { - "@subsquid/util-internal": "^3.0.0", + "@subsquid/util-internal": "^3.1.0", "@subsquid/util-internal-binary-heap": "^1.0.0" } }, - "node_modules/@subsquid/util-internal-range/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, "node_modules/@subsquid/util-internal-read-lines": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@subsquid/util-internal-read-lines/-/util-internal-read-lines-1.2.2.tgz", @@ -1597,6 +1525,19 @@ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ts-node/-/util-internal-ts-node-0.0.0.tgz", "integrity": "sha512-VBnrKrkNcqbT3hMLrjpEPuwMAihFhW9oUmK53bccBCCXrUiATNUblQD2S4IWd9/UBO5Q33ohpbE9sAodDq2DXw==" }, + "node_modules/@subsquid/util-internal-validation": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-validation/-/util-internal-validation-0.4.0.tgz", + "integrity": "sha512-YrwzbMd2Ez4ufCHDWc/AZpNqZ8LR/YCJ+1Aox5HF46INvkFVun5g5YI3HjXReMwvwrpT4Gsy+JvDTYvaHtTUlQ==", + "peerDependencies": { + "@subsquid/logger": "^1.3.3" + }, + "peerDependenciesMeta": { + "@subsquid/logger": { + "optional": true + } + } + }, "node_modules/@subsquid/util-naming": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@subsquid/util-naming/-/util-naming-1.2.2.tgz", @@ -1626,26 +1567,52 @@ "integrity": "sha512-1c3mxf35FBeOswduhy0Wil9s4exHahXFo974qa0Ci2AORX8JTxmwhBb10+3Ls9iWoTFwvgOaFr9v1HeRL5tCig==" }, "node_modules/@substrate/connect": { - "version": "0.7.35", - "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.35.tgz", - "integrity": "sha512-Io8vkalbwaye+7yXfG1Nj52tOOoJln2bMlc7Q9Yy3vEWqZEVkgKmcPVzbwV0CWL3QD+KMPDA2Dnw/X7EdwgoLw==", - "hasInstallScript": true, + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.8.10.tgz", + "integrity": "sha512-DIyQ13DDlXqVFnLV+S6/JDgiGowVRRrh18kahieJxhgvzcWicw5eLc6jpfQ0moVVLBYkO7rctB5Wreldwpva8w==", + "deprecated": "versions below 1.x are no longer maintained", "optional": true, "dependencies": { - "@substrate/connect-extension-protocol": "^1.0.1", - "smoldot": "2.0.7" + "@substrate/connect-extension-protocol": "^2.0.0", + "@substrate/connect-known-chains": "^1.1.4", + "@substrate/light-client-extension-helpers": "^0.0.6", + "smoldot": "2.0.22" } }, "node_modules/@substrate/connect-extension-protocol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz", - "integrity": "sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.0.0.tgz", + "integrity": "sha512-nKu8pDrE3LNCEgJjZe1iGXzaD6OSIDD4Xzz/yo4KO9mQ6LBvf49BVrt4qxBFGL6++NneLiWUZGoh+VSd4PyVIg==", + "optional": true + }, + "node_modules/@substrate/connect-known-chains": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@substrate/connect-known-chains/-/connect-known-chains-1.2.0.tgz", + "integrity": "sha512-BgcTHKteSAcEQs5ySNTYOO6ODQHVHwPgDrjYQhL0r8ZygY4cyXa5e2O//3tXNJiDopFHdqO8FBAy2Gbht0i0PA==", "optional": true }, + "node_modules/@substrate/light-client-extension-helpers": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.6.tgz", + "integrity": "sha512-girltEuxQ1BvkJWmc8JJlk4ZxnlGXc/wkLcNguhY+UoDEMBK0LsdtfzQKIfrIehi4QdeSBlFEFBoI4RqPmsZzA==", + "optional": true, + "dependencies": { + "@polkadot-api/json-rpc-provider": "0.0.1", + "@polkadot-api/json-rpc-provider-proxy": "0.0.1", + "@polkadot-api/observable-client": "0.1.0", + "@polkadot-api/substrate-client": "0.0.1", + "@substrate/connect-extension-protocol": "^2.0.0", + "@substrate/connect-known-chains": "^1.1.4", + "rxjs": "^7.8.1" + }, + "peerDependencies": { + "smoldot": "2.x" + } + }, "node_modules/@substrate/ss58-registry": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.46.0.tgz", - "integrity": "sha512-rBvWnlrBeFTd5LVG7oX3rOHzR16yqyffOFHKmUiVcblpXI3D89CXOvAljW9tWlA1H/2/FegaZnHPhdObPsvi+w==" + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.49.0.tgz", + "integrity": "sha512-leW6Ix4LD7XgvxT7+aobPWSw+WvPcN2Rxof1rmd0mNC5t2n99k1N7UNEvz7YEFSOUeHWmKIY7F5q8KeIqYoHfA==" }, "node_modules/@types/accepts": { "version": "1.3.7", @@ -1717,36 +1684,45 @@ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, "node_modules/@types/mime": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.4.tgz", - "integrity": "sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@types/qs": { - "version": "6.9.11", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", - "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==" + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", + "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==" }, "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dependencies": { "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" + "@types/node": "*", + "@types/send": "*" } }, "node_modules/accepts": { @@ -1762,11 +1738,14 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { @@ -2087,9 +2066,12 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", - "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -2213,14 +2195,6 @@ "ieee754": "^1.2.1" } }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, "node_modules/bufferutil": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", @@ -2316,6 +2290,14 @@ "npm": ">=5.0.0" } }, + "node_modules/cli-highlight/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/cli-highlight/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -2409,6 +2391,14 @@ "node": ">=12" } }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -2454,15 +2444,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "optional": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/cluster-key-slot": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", @@ -2488,11 +2469,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/content-disposition": { @@ -2515,9 +2496,9 @@ } }, "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "engines": { "node": ">= 0.6" } @@ -2574,12 +2555,15 @@ "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" }, "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" } }, "node_modules/data-uri-to-buffer": { @@ -2639,18 +2623,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "optional": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -2709,9 +2681,9 @@ } }, "node_modules/dotenv": { - "version": "16.4.4", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz", - "integrity": "sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==", + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "engines": { "node": ">=12" }, @@ -2732,17 +2704,6 @@ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, - "node_modules/easy-table": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz", - "integrity": "sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "optionalDependencies": { - "wcwidth": "^1.0.1" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -2800,13 +2761,14 @@ } }, "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", "hasInstallScript": true, "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", "next-tick": "^1.1.0" }, "engines": { @@ -2824,12 +2786,15 @@ } }, "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" } }, "node_modules/escalade": { @@ -2845,6 +2810,20 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -2853,22 +2832,31 @@ "node": ">= 0.6" } }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -2899,43 +2887,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/ext": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", @@ -2944,11 +2895,6 @@ "type": "^2.7.2" } }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3043,6 +2989,11 @@ "node": ">= 0.6" } }, + "node_modules/fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -3086,15 +3037,15 @@ } }, "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -3176,9 +3127,9 @@ } }, "node_modules/graphql-ws": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.15.0.tgz", - "integrity": "sha512-xWGAtm3fig9TIhSaNsg0FaDZ8Pyn/3re3RFlP4rhQcmjRDIPpk1EhRuNB+YSJtLzttyuToaDiNhwT1OMoGnJnw==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.16.0.tgz", + "integrity": "sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A==", "engines": { "node": ">=10" }, @@ -3214,9 +3165,9 @@ } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -3250,9 +3201,9 @@ } }, "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { "function-bind": "^1.1.2" }, @@ -3478,9 +3429,12 @@ } }, "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3515,19 +3469,25 @@ } }, "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3567,20 +3527,26 @@ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3729,9 +3695,9 @@ } }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3806,9 +3772,9 @@ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" }, "node_modules/nock": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.3.tgz", - "integrity": "sha512-2NlGmHIK2rTeyy7UaY1ZNg0YZfEJMxghXgZi0b4DBsUyoDNTTxZeCSG1nmirAWF44RkkoV8NnegLVQijgVapNQ==", + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz", + "integrity": "sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==", "dependencies": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", @@ -3819,9 +3785,9 @@ } }, "node_modules/nock/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dependencies": { "ms": "2.1.2" }, @@ -3906,12 +3872,12 @@ } }, "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -3956,11 +3922,6 @@ "node": ">= 0.8" } }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, "node_modules/parse5": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", @@ -3996,11 +3957,11 @@ } }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { @@ -4024,15 +3985,13 @@ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, "node_modules/pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", + "version": "8.11.5", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.5.tgz", + "integrity": "sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==", + "dependencies": { + "pg-connection-string": "^2.6.4", + "pg-pool": "^3.6.2", + "pg-protocol": "^1.6.1", "pg-types": "^2.1.0", "pgpass": "1.x" }, @@ -4058,9 +4017,9 @@ "optional": true }, "node_modules/pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==" }, "node_modules/pg-int8": { "version": "1.0.1", @@ -4071,17 +4030,17 @@ } }, "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", "peerDependencies": { "pg": ">=8.0" } }, "node_modules/pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==" }, "node_modules/pg-types": { "version": "2.2.0", @@ -4106,6 +4065,14 @@ "split2": "^4.1.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postgres-array": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", @@ -4228,9 +4195,9 @@ } }, "node_modules/reflect-metadata": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", - "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==" + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", @@ -4297,6 +4264,12 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/scale-ts": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/scale-ts/-/scale-ts-1.6.0.tgz", + "integrity": "sha512-Ja5VCjNZR8TGKhUumy9clVVxcDpM+YFjAnkMuwQy68Hixio3VRRvWdE3g8T/yC+HXA0ZDQl2TGyUmtmbcVl40Q==", + "optional": true + }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -4340,29 +4313,30 @@ } }, "node_modules/set-function-length": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", - "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dependencies": { - "define-data-property": "^1.1.2", + "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -4405,11 +4379,11 @@ } }, "node_modules/side-channel": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", - "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.7", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "object-inspect": "^1.13.1" @@ -4433,9 +4407,9 @@ } }, "node_modules/smoldot": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.7.tgz", - "integrity": "sha512-VAOBqEen6vises36/zgrmAT1GWk2qE3X8AGnO7lmQFdskbKx8EovnwS22rtPAG+Y1Rk23/S22kDJUdPANyPkBA==", + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.22.tgz", + "integrity": "sha512-B50vRgTY6v3baYH6uCgL15tfaag5tcS2o/P5q1OiXcKGv1axZDfz2dzzMuIkVpyMR2ug11F6EAtQlmYBQd292g==", "optional": true, "dependencies": { "ws": "^8.8.1" @@ -4512,6 +4486,14 @@ "node": ">=8" } }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -4554,15 +4536,12 @@ "node": ">=8" } }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=8" } }, "node_modules/supports-color": { @@ -4579,36 +4558,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/sync-fetch": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.5.2.tgz", - "integrity": "sha512-6gBqqkHrYvkH65WI2bzrDwrIKmt3U10s4Exnz3dYuE5Ah62FIfNv/F63inrNhu2Nyh3GH5f42GKU3RrSJoaUyQ==", - "dependencies": { - "node-fetch": "^2.6.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/sync-fetch/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/tdigest": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", @@ -4655,9 +4604,9 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" }, "node_modules/type-is": { "version": "1.6.18", @@ -4806,9 +4755,9 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -4879,19 +4828,10 @@ "node": ">= 0.8" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "optional": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/web-streams-polyfill": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", - "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", "engines": { "node": ">= 8" } @@ -4964,29 +4904,32 @@ } }, "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", - "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dependencies": { - "available-typed-arrays": "^1.0.6", - "call-bind": "^1.0.5", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.1" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5028,6 +4971,14 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -5089,9 +5040,9 @@ } }, "node_modules/xss": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.15.tgz", + "integrity": "sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==", "dependencies": { "commander": "^2.20.3", "cssfilter": "0.0.10" @@ -5175,6 +5126,14 @@ "node": ">=12" } }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", diff --git a/indexers/consensus-squid/package.json b/indexers/consensus-squid/package.json new file mode 100644 index 000000000..322f5f1c4 --- /dev/null +++ b/indexers/consensus-squid/package.json @@ -0,0 +1,48 @@ +{ + "name": "consensus-squid", + "version": "1.0.0", + "private": true, + "engines": { + "node": ">=16" + }, + "repository": { + "type": "git", + "url": "https://github.com/autonomys/astral" + }, + "author": { + "name": "Autonomys", + "url": "https://www.autonomys.xyz" + }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, + "scripts": { + "typegen": "sqd typegen", + "codegen": "sqd codegen", + "migration": "sqd migration:generate", + "build": "rm -rf lib && tsc", + "process": "sqd process", + "deploy": "sqd deploy --org autonomys-labs .", + "format": "prettier --write 'src/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc" + }, + "dependencies": { + "@autonomys/auto-consensus": "^0.2.0", + "@autonomys/auto-utils": "^0.2.0", + "@subsquid/graphql-server": "^4.5.1", + "@subsquid/ss58": "^2.0.2", + "@subsquid/substrate-processor": "^8.3.0", + "@subsquid/typeorm-migration": "^1.3.0", + "@subsquid/typeorm-store": "^1.4.0", + "dotenv": "^16.4.5", + "pg": "8.11.5", + "typeorm": "^0.3.20" + }, + "devDependencies": { + "@subsquid/substrate-metadata-explorer": "^3.1.2", + "@subsquid/substrate-typegen": "^8.1.0", + "@subsquid/substrate-runtime": "^2.0.0", + "@subsquid/typeorm-codegen": "^2.0.0", + "@types/node": "^20.12.7", + "typescript": "^5.4.5" + } +} diff --git a/indexers/consensus-squid/schema.graphql b/indexers/consensus-squid/schema.graphql new file mode 100644 index 000000000..16b1ac06b --- /dev/null +++ b/indexers/consensus-squid/schema.graphql @@ -0,0 +1,101 @@ +type Module @entity { + id: ID! @index + name: String! @index + extrinsicCount: Int! + eventCount: Int! + createdAt: Int! @index + updatedAt: Int! @index +} + +type ExtrinsicName @entity { + id: ID! @index + moduleId: String! @index + name: String! @index + count: Int! + createdAt: Int! @index + updatedAt: Int! @index +} + +type EventName @entity { + id: ID! @index + moduleId: String! @index + name: String! @index + count: Int! + createdAt: Int! @index + updatedAt: Int! @index +} + +type LogKind @entity { + id: ID! @index + kind: String! @index + count: Int! + createdAt: Int! @index + updatedAt: Int! @index +} + +type Block @entity { + id: ID! @index + height: BigInt! @index + hash: String! @index + parentHash: String! + specId: String! + stateRoot: String! + extrinsicsRoot: String! + spacePledged: BigInt! + blockchainSize: BigInt! + owner: String! @index + extrinsicsCount: Int! + eventsCount: Int! + timestamp: BigInt! @index + date: DateTime! @index +} + +type Extrinsic @entity { + id: ID! @index + hash: String! @index + indexInBlock: Int! + nonce: BigInt! + name: String! @index + signer: String! @index + signature: String! @index + error: String! + tip: BigInt! + fee: BigInt! + success: Boolean! + blockId: String! @index + blockHeight: BigInt! @index + pos: Int! + timestamp: BigInt! @index + date: DateTime! @index + createdAt: Int! @index +} + +type Event @entity { + id: ID! @index + indexInBlock: Int! + name: String! @index + phase: String! + pos: Int! + blockId: String! @index + accountId: String! @index + blockHeight: BigInt! @index + extrinsicId: String! @index + callId: String! @index + timestamp: BigInt! @index + date: DateTime! @index + createdAt: Int! @index +} + +type Log @entity { + id: ID! @index + kind: String! @index + value: String! + blockId: String! @index + accountId: String! @index + createdAt: Int! @index +} + +type SlackMessage @entity { + id: ID! @index + messageId: String! @index +} \ No newline at end of file diff --git a/indexers/consensus-squid/squid.yaml b/indexers/consensus-squid/squid.yaml new file mode 100644 index 000000000..1697cebff --- /dev/null +++ b/indexers/consensus-squid/squid.yaml @@ -0,0 +1,35 @@ +manifestVersion: subsquid.io/v0.1 +name: consensus-squid +version: 7 +description: Autonomys - Astral - Consensus Indexer +build: +deploy: + env: + HASURA_GRAPHQL_ADMIN_SECRET: '${{ secrets.HASURA_SECRET }}' + HASURA_GRAPHQL_UNAUTHORIZED_ROLE: user + HASURA_GRAPHQL_STRINGIFY_NUMERIC_TYPES: 'true' + addons: + postgres: + hasura: + processor: + cmd: + - sqd + - process:prod + env: + CONSENSUS_GATEWAY: ${{ secrets.CONSENSUS_GATEWAY }} + RPC_CONSENSUS_HTTP: ${{ secrets.RPC_CONSENSUS_ENDPOINT }} + SLACK_TOKEN: ${{ secrets.SLACK_TOKEN }} + SLACK_CONVERSATION_ID: ${{ secrets.SLACK_CONVERSATION_ID }} + api: + cmd: + - sqd + - serve:prod + +scale: + dedicated: true + addons: + postgres: + storage: 2000G + profile: large + processor: + profile: medium diff --git a/indexers/consensus-squid/src/blocks/index.ts b/indexers/consensus-squid/src/blocks/index.ts new file mode 100644 index 000000000..59be4f9ea --- /dev/null +++ b/indexers/consensus-squid/src/blocks/index.ts @@ -0,0 +1,64 @@ +import type { ApiPromise } from '@autonomys/auto-utils' +import { Store } from '@subsquid/typeorm-store' +import { processExtrinsics } from '../extrinsics' +import { SlackMessage } from '../model' +import type { Ctx } from '../processor' +import { + getOrCreateBlock, +} from '../storage' +import { solutionRanges } from '../types/subspace/storage' +import { + calcSpacePledged, + getBlockAuthor, + getHistorySize, + logBlock, +} from '../utils' +import { Cache, LastSlackMsg, load, save } from '../utils/cache' +import { sendSlackStatsMessage } from '../utils/slack' + +export async function processBlocks(ctx: Ctx, api: ApiPromise) { + let cache: Cache = await load(ctx) + + const logMsg = logBlock(ctx.blocks) + const lastSlackMsgKey: LastSlackMsg = 'lastSlackMsg' + const lastSlackMsg = cache.slackMessages.get(lastSlackMsgKey) + const slackMsg = await sendSlackStatsMessage(logMsg, lastSlackMsg ? lastSlackMsg.messageId : undefined) + if (slackMsg) cache.slackMessages.set(lastSlackMsgKey, new SlackMessage({ + id: lastSlackMsgKey, + messageId: slackMsg, + })) + + for (let block of ctx.blocks) { + const [solutionRang, blockchainSize, owner] = await Promise.all([ + solutionRanges.v0.get(block.header), + getHistorySize(ctx, block, api), + getBlockAuthor(block, api), + ]) + const spacePledged = solutionRang + ? calcSpacePledged(solutionRang.current) + : calcSpacePledged(solutionRanges.v0.getDefault(block.header).current) + + const _block = getOrCreateBlock(cache, block, { + id: block.header.id, + height: BigInt(block.header.height ?? 0), + timestamp: BigInt(block.header.timestamp ?? 0), + hash: block.header.hash ?? '', + parentHash: block.header.parentHash ?? '', + specId: block.header.specVersion.toString() ?? '', + stateRoot: (block.header as any)?.stateRoot ?? '', + extrinsicsRoot: (block.header as any)?.extrinsicsRoot ?? '', + spacePledged, + blockchainSize, + extrinsicsCount: block.extrinsics.length ?? 0, + eventsCount: block.events.length ?? 0, + owner: owner ?? '', + }) + cache.blocks.set(_block.id, _block) + + cache = processExtrinsics(cache, block, block.extrinsics, owner ?? '') + + if (block.header.height % 100 === 0) await save(ctx, cache) + } + + await save(ctx, cache) +} \ No newline at end of file diff --git a/indexers/consensus-squid/src/events/index.ts b/indexers/consensus-squid/src/events/index.ts new file mode 100644 index 000000000..91ac57069 --- /dev/null +++ b/indexers/consensus-squid/src/events/index.ts @@ -0,0 +1,58 @@ +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' +import { getOrCreateEvent, getOrCreateEventName, getOrCreateModule } from '../storage' +import { getBlockNumber, getCallSigner } from '../utils' +import { Cache } from '../utils/cache' + +export function processEvents( + cache: Cache, + block: CtxBlock, + extrinsic: CtxExtrinsic, + blockOwner: string, +) { + const blockHeight = BigInt(block.header.height ?? 0) + const blockId = block.header.id + const timestamp = BigInt(block.header.timestamp ?? 0) + const phase = (extrinsic as any)?.phase ?? BigInt(0) + + for (let [index, event] of extrinsic.events.entries()) { + try { + const _event = getOrCreateEvent(cache, block, event.id, { + indexInBlock: index, + name: event.name, + extrinsicId: extrinsic.id, + accountId: extrinsic.call && extrinsic.call.origin ? getCallSigner(extrinsic.call) : blockOwner, + blockHeight, + blockId, + callId: extrinsic.call?.id ?? '', + phase, + timestamp, + }) + cache.events.set(_event.id, _event) + cache.isModified = true + + cache = processEvent(cache, block, event) + } catch (error) { + console.error('Failed to process event:', error) + } + } + return cache +} + +function processEvent( + cache: Cache, + block: CtxBlock, + event: CtxEvent, +) { + const module = getOrCreateModule(cache, block, event.name) + module.eventCount++ + module.updatedAt = getBlockNumber(block) + cache.modules.set(module.id, module) + + const eventName = getOrCreateEventName(cache, block, event.name) + eventName.count++ + eventName.updatedAt = getBlockNumber(block) + cache.eventNames.set(eventName.id, eventName) + cache.isModified = true + + return cache +} \ No newline at end of file diff --git a/indexers/consensus-squid/src/extrinsics/index.ts b/indexers/consensus-squid/src/extrinsics/index.ts new file mode 100644 index 000000000..4cea41868 --- /dev/null +++ b/indexers/consensus-squid/src/extrinsics/index.ts @@ -0,0 +1,66 @@ +import { processEvents } from '../events' +import type { CtxBlock, CtxExtrinsic } from '../processor' +import { + getOrCreateExtrinsic, + getOrCreateExtrinsicName, + getOrCreateModule, +} from '../storage' +import { getBlockNumber, getCallSigner } from '../utils' +import { Cache } from '../utils/cache' + +export function processExtrinsics( + cache: Cache, + block: CtxBlock, + extrinsics: CtxExtrinsic[], + blockOwner: string, +) { + for (let [index, extrinsic] of extrinsics.entries()) { + try { + const _extrinsic = getOrCreateExtrinsic(cache, block, extrinsic.id, { + hash: extrinsic.hash, + indexInBlock: index, + nonce: BigInt((extrinsic as any).nonce ?? 0), + name: extrinsic.call?.name ?? '', + // tip: BigInt((extrinsic as any)?.tip ?? 0), + fee: extrinsic.fee ?? BigInt(0), + success: extrinsic.success, + blockId: block.header.id, + signer: + extrinsic.call && extrinsic.call.origin ? getCallSigner(extrinsic.call) : blockOwner, + blockHeight: BigInt(block.header.height ?? 0), + // pos: Number((extrinsic as any)?.pos ?? 0), + timestamp: BigInt(block.header.timestamp ?? 0), + }) + cache.extrinsics.set(_extrinsic.id, _extrinsic) + + cache.isModified = true + } catch (error) { + console.error('Failed to process extrinsic:', error) + } + + cache = processExtrinsic(cache, block, extrinsic, blockOwner) + } + return cache +} + +export function processExtrinsic( + cache: Cache, + block: CtxBlock, + extrinsic: CtxExtrinsic, + blockOwner: string, +) { + if (extrinsic.call) { + const module = getOrCreateModule(cache, block, extrinsic.call.name) + module.extrinsicCount++ + module.updatedAt = getBlockNumber(block) + cache.modules.set(module.id, module) + + const extrinsicName = getOrCreateExtrinsicName(cache, block, extrinsic.call.name) + extrinsicName.count++ + extrinsicName.updatedAt = getBlockNumber(block) + cache.extrinsicNames.set(extrinsicName.id, extrinsicName) + cache.isModified = true + } + + return processEvents(cache, block, extrinsic, blockOwner) +} diff --git a/indexers/consensus-squid/src/main.ts b/indexers/consensus-squid/src/main.ts new file mode 100644 index 000000000..3de6311ee --- /dev/null +++ b/indexers/consensus-squid/src/main.ts @@ -0,0 +1,27 @@ +import { createConnection } from '@autonomys/auto-utils' +import { TypeormDatabase } from '@subsquid/typeorm-store' +import { assertNotNull } from '@subsquid/util-internal' +import { processBlocks } from './blocks' +import { processor } from './processor' + +const types = { + Solution: { + public_key: 'AccountId32', + reward_address: 'AccountId32', + }, + SubPreDigest: { + slot: 'u64', + solution: 'Solution', + }, +} + +processor.run(new TypeormDatabase({ supportHotBlocks: true }), async (ctx) => { + const api = await createConnection( + assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC_CONSENSUS_HTTP env'), + { types }, + ) + + await processBlocks(ctx, api) + + await api.disconnect() +}) diff --git a/indexers/consensus-squid/src/processor.ts b/indexers/consensus-squid/src/processor.ts new file mode 100644 index 000000000..f715800a5 --- /dev/null +++ b/indexers/consensus-squid/src/processor.ts @@ -0,0 +1,61 @@ +import { + BlockHeader, + DataHandlerContext, + SubstrateBatchProcessor, + SubstrateBatchProcessorFields, + Call as _Call, + Event as _Event, + Extrinsic as _Extrinsic, +} from '@subsquid/substrate-processor' +import { assertNotNull } from '@subsquid/util-internal' + +export const processor = new SubstrateBatchProcessor() + .setGateway(assertNotNull(process.env.CONSENSUS_GATEWAY, 'No Gateway endpoint supplied')) + .setRpcEndpoint({ + url: assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC endpoint supplied'), + // More RPC connection options at https://docs.subsquid.io/substrate-indexing/setup/general/#set-data-source + rateLimit: 10, + }) + .setBlockRange({ + from: 0, + }) + .addEvent({ + call: true, + stack: true, + extrinsic: true, + }) + .setFields({ + block: { + height: true, + hash: true, + timestamp: true, + }, + extrinsic: { + index: true, + version: true, + fee: true, + success: true, + hash: true, + }, + call: { + address: true, + name: true, + args: true, + origin: true, + }, + event: { + name: true, + args: true, + }, + }) + +export type Fields = SubstrateBatchProcessorFields +export type Block = BlockHeader +export type Event = _Event +export type Call = _Call +export type Extrinsic = _Extrinsic +export type ProcessorContext = DataHandlerContext +export type Ctx = ProcessorContext +export type CtxBlock = Ctx['blocks'][0] +export type CtxExtrinsic = CtxBlock['extrinsics'][0] +export type CtxEvent = CtxExtrinsic['events'][0] diff --git a/indexers/consensus-squid/src/storage/block.ts b/indexers/consensus-squid/src/storage/block.ts new file mode 100644 index 000000000..8ea92bfe9 --- /dev/null +++ b/indexers/consensus-squid/src/storage/block.ts @@ -0,0 +1,38 @@ +import { Block } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' + +export const createBlock = (block: CtxBlock, props: Partial = {}): Block => { + const blockNumber = getBlockNumber(block) + return new Block({ + id: props.id ?? '', + height: props.height ?? BigInt(0), + hash: props.hash ?? '', + parentHash: props.parentHash ?? '', + specId: props.specId ?? '', + stateRoot: props.stateRoot ?? '', + extrinsicsRoot: props.extrinsicsRoot ?? '', + spacePledged: props.spacePledged ?? BigInt(0), + blockchainSize: props.blockchainSize ?? BigInt(0), + extrinsicsCount: props.extrinsicsCount ?? 0, + eventsCount: props.eventsCount ?? 0, + owner: props.owner ?? '', + timestamp: props.timestamp ?? BigInt(0), + date: props.date ?? getTimestamp(block), + ...props, + }) +} + +export const getOrCreateBlock = ( + cache: Cache, + block: CtxBlock, + props: Partial = {}, +): Block => { + const blockId = props.id ?? '' + const cachedBlock = cache.blocks.get(blockId) + + if (!cachedBlock) return createBlock(block, props) + + return cachedBlock +} diff --git a/indexers/consensus-squid/src/storage/event.ts b/indexers/consensus-squid/src/storage/event.ts new file mode 100644 index 000000000..1728b3980 --- /dev/null +++ b/indexers/consensus-squid/src/storage/event.ts @@ -0,0 +1,37 @@ +import { Event } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' + +export const createEvent = (block: CtxBlock, id: string, props: Partial = {}): Event => { + const blockNumber = getBlockNumber(block) + return new Event({ + id: id, + indexInBlock: props.indexInBlock ?? 0, + name: props.name ?? '', + phase: props.phase ?? '', + pos: props.pos ?? 0, + blockId: props.blockId ?? '', + accountId: props.accountId ?? '', + blockHeight: props.blockHeight ?? BigInt(0), + extrinsicId: props.extrinsicId ?? '', + callId: props.callId ?? '', + timestamp: props.timestamp ?? BigInt(0), + date: props.date ?? getTimestamp(block), + createdAt: blockNumber, + ...props, + }) +} + +export const getOrCreateEvent = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {}, +): Event => { + const event = cache.events.get(id) + + if (!event) return createEvent(block, id, props) + + return event +} diff --git a/indexers/consensus-squid/src/storage/eventName.ts b/indexers/consensus-squid/src/storage/eventName.ts new file mode 100644 index 000000000..9507b17e3 --- /dev/null +++ b/indexers/consensus-squid/src/storage/eventName.ts @@ -0,0 +1,35 @@ +import { EventName } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, splitModuleAndId, stringUID } from '../utils' +import { Cache } from '../utils/cache' +import { getOrCreateModule } from './module' + +export const createEventName = ( + block: CtxBlock, + id: string, + props: Partial = {}, +): EventName => { + const [moduleId, name] = splitModuleAndId(id) + const blockNumber = getBlockNumber(block) + return new EventName({ + id: stringUID(id), + moduleId, + name, + count: 0, + createdAt: blockNumber, + ...props, + }) +} + +export const getOrCreateEventName = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {}, +): EventName => { + const eventModuleName = cache.eventNames.get(stringUID(id)) + + if (!eventModuleName) return createEventName(block, id, props) + + return eventModuleName +} diff --git a/indexers/consensus-squid/src/storage/extrinsic.ts b/indexers/consensus-squid/src/storage/extrinsic.ts new file mode 100644 index 000000000..33f3127fe --- /dev/null +++ b/indexers/consensus-squid/src/storage/extrinsic.ts @@ -0,0 +1,45 @@ +import { Extrinsic } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' + +export const createExtrinsic = ( + block: CtxBlock, + id: string, + props: Partial = {}, +): Extrinsic => { + const blockNumber = getBlockNumber(block) + return new Extrinsic({ + id: id, + hash: props.hash ?? '', + indexInBlock: props.indexInBlock ?? 0, + nonce: props.nonce ?? BigInt(0), + name: props.name ?? '', + signer: props.signer ?? '', + signature: props.signature ?? '', + error: props.error ?? '', + tip: props.tip ?? BigInt(0), + fee: props.fee ?? BigInt(0), + success: props.success ?? false, + blockId: props.blockId ?? '', + blockHeight: props.blockHeight ?? BigInt(0), + pos: props.pos ?? 0, + timestamp: props.timestamp ?? BigInt(0), + date: props.date ?? getTimestamp(block), + createdAt: blockNumber, + ...props, + }) +} + +export const getOrCreateExtrinsic = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {}, +): Extrinsic => { + const extrinsic = cache.extrinsics.get(id) + + if (!extrinsic) return createExtrinsic(block, id, props) + + return extrinsic +} diff --git a/indexers/consensus-squid/src/storage/extrinsicName.ts b/indexers/consensus-squid/src/storage/extrinsicName.ts new file mode 100644 index 000000000..8f37bade2 --- /dev/null +++ b/indexers/consensus-squid/src/storage/extrinsicName.ts @@ -0,0 +1,35 @@ +import { ExtrinsicName } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, splitModuleAndId, stringUID } from '../utils' +import { Cache } from '../utils/cache' +import { getOrCreateModule } from './module' + +export const createExtrinsicName = ( + block: CtxBlock, + id: string, + props: Partial = {}, +): ExtrinsicName => { + const [moduleId, name] = splitModuleAndId(id) + const blockNumber = getBlockNumber(block) + return new ExtrinsicName({ + id: stringUID(id), + moduleId, + name, + count: 0, + createdAt: blockNumber, + ...props, + }) +} + +export const getOrCreateExtrinsicName = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {}, +): ExtrinsicName => { + const extrinsicModuleName = cache.extrinsicNames.get(stringUID(id)) + + if (!extrinsicModuleName) return createExtrinsicName(block, id) + + return extrinsicModuleName +} diff --git a/indexers/consensus-squid/src/storage/index.ts b/indexers/consensus-squid/src/storage/index.ts new file mode 100644 index 000000000..f3bb98af9 --- /dev/null +++ b/indexers/consensus-squid/src/storage/index.ts @@ -0,0 +1,7 @@ +export * from './block' +export * from './event' +export * from './eventName' +export * from './extrinsic' +export * from './extrinsicName' +export * from './module' + diff --git a/indexers/consensus-squid/src/storage/module.ts b/indexers/consensus-squid/src/storage/module.ts new file mode 100644 index 000000000..9e3757225 --- /dev/null +++ b/indexers/consensus-squid/src/storage/module.ts @@ -0,0 +1,34 @@ +import { Module } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, splitModuleAndId, stringUID } from '../utils' +import { Cache } from '../utils/cache' + +export const createModule = ( + block: CtxBlock, + name: string, + props: Partial = {}, +): Module => { + const blockNumber = getBlockNumber(block) + return new Module({ + id: stringUID(name), + name, + extrinsicCount: 0, + eventCount: 0, + createdAt: blockNumber, + ...props, + }) +} + +export const getOrCreateModule = ( + cache: Cache, + block: CtxBlock, + eventOrCall: string, + props: Partial = {}, +): Module => { + const [moduleId] = splitModuleAndId(eventOrCall) + const moduleName = cache.modules.get(stringUID(moduleId)) + + if (!moduleName) return createModule(block, moduleId, props) + + return moduleName +} diff --git a/indexers/consensus-squid/src/utils/cache.ts b/indexers/consensus-squid/src/utils/cache.ts new file mode 100644 index 000000000..eb0d392f5 --- /dev/null +++ b/indexers/consensus-squid/src/utils/cache.ts @@ -0,0 +1,131 @@ +import { Store } from '@subsquid/typeorm-store' +import { Entity } from '@subsquid/typeorm-store/src/store' +import { + Block, + Event, + EventName, + Extrinsic, + ExtrinsicName, + Module, + SlackMessage, +} from '../model' +import type { Ctx } from '../processor' + +export type PermanentCache = { + modules: Map + eventNames: Map + extrinsicNames: Map + + slackMessages: Map +} + +export type TemporaryCache = { + blocks: Map + extrinsics: Map + events: Map +} + +export type LastSlackMsg = `lastSlackMsg` +export const lastSlackMsgKey: LastSlackMsg = 'lastSlackMsg' + +type InternalKeyStore = LastSlackMsg + +type CacheManager = { + isModified: boolean + internalKeyStore: Map +} + +export type Cache = PermanentCache & TemporaryCache & CacheManager + +export const initPermanentCache: PermanentCache = { + modules: new Map(), + eventNames: new Map(), + extrinsicNames: new Map(), + slackMessages: new Map(), +} + +export const initTemporaryCache: TemporaryCache = { + blocks: new Map(), + extrinsics: new Map(), + events: new Map(), +} + +export const initCacheManager: CacheManager = { + isModified: false, + internalKeyStore: new Map(), +} + +export const initCache: Cache = { + ...initPermanentCache, + ...initTemporaryCache, + ...initCacheManager, +} + +export const load = async (ctx: Ctx): Promise => { + const [modules, eventNames, extrinsicNames, slackMessages] = await Promise.all([ + ctx.store.find(Module), + ctx.store.find(EventName), + ctx.store.find(ExtrinsicName), + ctx.store.find(SlackMessage), + ]) + + console.log( + '\x1b[32mLoaded in cache:\x1b[0m', + modules.length + ' modules, ', + eventNames.length + ' eventNames, ', + extrinsicNames.length + ' extrinsicNames, ', + slackMessages.length + ' slackMessages', + ) + + return { + ...initCache, + modules: new Map(modules.map((m) => [m.id, m])), + eventNames: new Map(eventNames.map((e) => [e.id, e])), + extrinsicNames: new Map(extrinsicNames.map((e) => [e.id, e])), + slackMessages: new Map(slackMessages.map((s) => [s.id, s])), + } +} + +const saveEntry = async (ctx: Ctx, cache: Cache, name: keyof Cache) => { + try { + const entity = cache[name] as unknown as Map + if (entity.size === 0) return + + await ctx.store.save(Array.from(entity.values())) + } catch (e) { + console.error(`Failed to save ${name} with error:`, e) + } +} + +const logEntry = (name: string, entry: Map) => + entry.size > 0 ? entry.size + ' ' + name + ', ' : '' + +export const save = async (ctx: Ctx, cache: Cache) => { + // If the cache is not modified, skip saving + if (!cache.isModified) return + + let logPerm = logEntry('modules', cache.modules) + logPerm += logEntry('eventNames', cache.eventNames) + logPerm += logEntry('extrinsicNames', cache.extrinsicNames) + logPerm += logEntry('slackMessages', cache.slackMessages) + + let logTemp = logEntry('blocks', cache.blocks) + logTemp += logEntry('extrinsics', cache.extrinsics) + logTemp += logEntry('events', cache.events) + + console.log('\x1b[34mSaving in database:\x1b[0m', logPerm) + console.log(' and ', logTemp, '\n') + + await Promise.all( + Object.keys(cache).map((k) => + !Object.keys(initCacheManager).includes(k) ? saveEntry(ctx, cache, k as keyof Cache) : null, + ), + ) + + // Clear the cache for entries not needed for reference + cache.blocks.clear() + cache.extrinsics.clear() + cache.events.clear() + + cache.isModified = false +} diff --git a/indexers/consensus-squid/src/utils/index.ts b/indexers/consensus-squid/src/utils/index.ts new file mode 100644 index 000000000..51cf6c725 --- /dev/null +++ b/indexers/consensus-squid/src/utils/index.ts @@ -0,0 +1,145 @@ +import { ApiPromise, DEFAULT_SS58_FORMAT } from '@autonomys/auto-utils' +import { Struct, u64 } from '@polkadot/types' +import { AccountId32 } from '@polkadot/types/interfaces' +import { HexSink } from '@subsquid/scale-codec' +import { codec } from '@subsquid/ss58' +import { Store } from '@subsquid/typeorm-store' +import { decodeHex, toHex } from '@subsquid/util-internal-hex' +import { xxhash128 } from '@subsquid/util-xxhash' +import type { Ctx, CtxBlock, ProcessorContext } from '../processor' +import { digest } from '../types/system/storage' +import { DigestItem_PreRuntime } from '../types/v0' + +const PIECE_SIZE = 1048576n +const MAX_PIECES_IN_SECTOR = 1000n + +export const hexToAccount = (hex: string): string => { + try { + return codec(DEFAULT_SS58_FORMAT).encode(decodeHex(hex)) + } catch (error) { + console.error('Failed to convert hex to account:', error) + return '' + } +} + +export const getCallSigner = ( + call: ProcessorContext['blocks'][0]['extrinsics'][0]['call'], +): string => { + try { + return hexToAccount((call as any).origin.value.value) + } catch (error) { + console.error('Failed to get call signer:', error) + return '' + } +} + +export const getBlockNumber = (block: CtxBlock): number => block.header.height + +export const getTimestamp = (block: CtxBlock): Date => new Date(block.header.timestamp ?? 0) + +export const splitModuleAndId = (extrinsicName: string): [string, string] => { + const [module, call] = extrinsicName.split('.') + return [module, call] +} + +export const stringUID = (id: string): string => id.toLowerCase() + +export const logBlock = (blocks: CtxBlock[]): string => { + const from = getBlockNumber(blocks[0]) + const to = getBlockNumber(blocks[blocks.length - 1]) + console.log( + '\x1b[33mProcessing ' + blocks.length + ' blocks\x1b[0m', + 'From ' + from, + 'to ' + to + ' (' + (to - from) + ' blocks)', + ) + return 'Processing ' + blocks.length + ' blocks, ' + 'From ' + from + 'to ' + to + ' (' + (to - from) + ' blocks)' +} + +export const solutionRangeToSectors = (solutionRange: bigint): bigint => { + const MAX_U64 = 2n ** 64n - 1n + const SLOT_PROBABILITY = [1n, 6n] + const RECORD_NUM_CHUNKS = 32768n + const RECORD_NUM_S_BUCKETS = 65536n + + const sectors = + ((MAX_U64 / SLOT_PROBABILITY[1]) * SLOT_PROBABILITY[0]) / + ((MAX_PIECES_IN_SECTOR * RECORD_NUM_CHUNKS) / RECORD_NUM_S_BUCKETS) + + // Take solution range into account + return sectors / solutionRange +} + +export const calcSpacePledged = (solutionRange: bigint): bigint => { + const sectors = solutionRangeToSectors(solutionRange) + + return sectors * MAX_PIECES_IN_SECTOR * PIECE_SIZE +} + +export const calcHistorySize = (segmentsCount: number): bigint => { + const PIECES_IN_SEGMENT = 256n + const segmentsCountBigInt = BigInt(segmentsCount) + + return PIECE_SIZE * PIECES_IN_SEGMENT * segmentsCountBigInt +} + +interface Solution extends Struct { + readonly public_key: AccountId32 + readonly reward_address: AccountId32 +} + +export interface SubPreDigest extends Struct { + readonly slot: u64 + readonly solution: Solution +} + +export const getBlockAuthor = async (block: CtxBlock, api: ApiPromise) => { + if (block.header.height === 0) return // genesis block does not have logs + const storage = (await digest.v0.get(block.header)) ?? digest.v0.getDefault(block.header) + const preRuntimeRaw = storage.logs.find( + (digestItem) => digestItem.__kind === 'PreRuntime', + ) as DigestItem_PreRuntime + if (!preRuntimeRaw) return + + const subPreDigest = api.registry.createType('SubPreDigest', preRuntimeRaw.value[1]) + return (subPreDigest as unknown as SubPreDigest).solution.reward_address.toString() +} + +const getNameHash = (name: string): string => { + const digest = xxhash128().update(name).digest() + const sink = new HexSink() + sink.u128(digest) + const hash = sink.toHex() + return hash +} + +export const getStorageHash = (prefix: string, name: string) => { + return getNameHash(prefix) + getNameHash(name).slice(2) +} + +export const getHistorySize = async (ctx: Ctx, block: CtxBlock, api: ApiPromise) => { + const { client } = ctx._chain + + const storageHash = getStorageHash('Subspace', 'SegmentCommitment') + + const totalSize = (await client.call('state_getStorageSizeAt', [ + storageHash, + block.header.hash, + ])) as number + if (totalSize === 0 || !totalSize) return BigInt(0) + + const keys = (await client.call('state_getKeysPagedAt', [ + storageHash, + 1, + null, + block.header.hash, + ])) as string[] + + const keySize = (await client.call('state_getStorageSizeAt', [ + keys[0], + block.header.hash, + ])) as number + + const segmentsCount = totalSize / keySize + + return calcHistorySize(segmentsCount) +} diff --git a/indexers/consensus-squid/src/utils/slack.ts b/indexers/consensus-squid/src/utils/slack.ts new file mode 100644 index 000000000..37ef864a7 --- /dev/null +++ b/indexers/consensus-squid/src/utils/slack.ts @@ -0,0 +1,77 @@ +interface SlackBlock { + type: string + text: { + type: string + text: string + } +} + +interface SlackPayload { + channel: string + text: string + blocks: SlackBlock[] + ts?: string +} + +export const sendSlackMessage = async ( + message: string, + blocks: SlackBlock[], + messageIdToEdit?: string, +): Promise => { + const token = process.env.SLACK_TOKEN + const conversationId = process.env.SLACK_CONVERSATION_ID || '' + const url = messageIdToEdit + ? 'https://slack.com/api/chat.update' + : 'https://slack.com/api/chat.postMessage' + + const payload: SlackPayload = { + channel: conversationId, + text: message, + blocks: blocks, + } + + if (messageIdToEdit) { + payload.ts = messageIdToEdit + } + + try { + const response = await fetch(url, { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=utf-8', + Authorization: `Bearer ${token}`, + }, + body: JSON.stringify(payload), + }) + + const data = await response.json() + + if (!data.ok) { + throw new Error(data.error) + } + + return data.ts || undefined + } catch (e) { + console.error('Error sending slack message', e) + } +} + +export const sendSlackStatsMessage = async (text: string, messageIdToEdit?: string) => { + const blocks: SlackBlock[] = [ + { + type: 'header', + text: { + type: 'plain_text', + text: 'Consensus Indexer Stats', + }, + }, + { + type: 'section', + text: { + type: 'mrkdwn', + text, + }, + }, + ] + return await sendSlackMessage('Last block processed', blocks, messageIdToEdit) +} \ No newline at end of file diff --git a/indexers/rewards-squid/tsconfig.json b/indexers/consensus-squid/tsconfig.json similarity index 100% rename from indexers/rewards-squid/tsconfig.json rename to indexers/consensus-squid/tsconfig.json diff --git a/indexers/consensus-squid/typegen.json b/indexers/consensus-squid/typegen.json new file mode 100644 index 000000000..86cd2c6a7 --- /dev/null +++ b/indexers/consensus-squid/typegen.json @@ -0,0 +1,8 @@ +{ + "outDir": "src/types", + "specVersions": "gemini3h.jsonl", + "constants": true, + "events": true, + "calls": true, + "storage": true +} diff --git a/indexers/db/.env b/indexers/db/.env new file mode 100644 index 000000000..44e9546a8 --- /dev/null +++ b/indexers/db/.env @@ -0,0 +1 @@ +HASURA_GRAPHQL_ADMIN_SECRET=helloworld \ No newline at end of file diff --git a/indexers/db/.gitignore b/indexers/db/.gitignore new file mode 100644 index 000000000..30bc16279 --- /dev/null +++ b/indexers/db/.gitignore @@ -0,0 +1 @@ +/node_modules \ No newline at end of file diff --git a/indexers/db/config.yaml b/indexers/db/config.yaml new file mode 100644 index 000000000..807276733 --- /dev/null +++ b/indexers/db/config.yaml @@ -0,0 +1,7 @@ +version: 3 +endpoint: http://localhost:8080 +metadata_directory: metadata +migrations_directory: migrations +actions: + kind: synchronous + handler_webhook_baseurl: http://localhost:3000 diff --git a/indexers/db/docker-entrypoint-initdb.d/init-db.sql b/indexers/db/docker-entrypoint-initdb.d/init-db.sql new file mode 100644 index 000000000..5ada6384d --- /dev/null +++ b/indexers/db/docker-entrypoint-initdb.d/init-db.sql @@ -0,0 +1,4 @@ +CREATE DATABASE accounts; +CREATE DATABASE consensus; +CREATE DATABASE leaderboard; +CREATE DATABASE staking; \ No newline at end of file diff --git a/indexers/db/metadata/actions.graphql b/indexers/db/metadata/actions.graphql new file mode 100644 index 000000000..e69de29bb diff --git a/indexers/db/metadata/actions.yaml b/indexers/db/metadata/actions.yaml new file mode 100644 index 000000000..1edb4c2ff --- /dev/null +++ b/indexers/db/metadata/actions.yaml @@ -0,0 +1,6 @@ +actions: [] +custom_types: + enums: [] + input_objects: [] + objects: [] + scalars: [] diff --git a/indexers/db/metadata/allow_list.yaml b/indexers/db/metadata/allow_list.yaml new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/indexers/db/metadata/allow_list.yaml @@ -0,0 +1 @@ +[] diff --git a/indexers/db/metadata/api_limits.yaml b/indexers/db/metadata/api_limits.yaml new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/indexers/db/metadata/api_limits.yaml @@ -0,0 +1 @@ +{} diff --git a/indexers/db/metadata/backend_configs.yaml b/indexers/db/metadata/backend_configs.yaml new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/indexers/db/metadata/backend_configs.yaml @@ -0,0 +1 @@ +{} diff --git a/indexers/db/metadata/cron_triggers.yaml b/indexers/db/metadata/cron_triggers.yaml new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/indexers/db/metadata/cron_triggers.yaml @@ -0,0 +1 @@ +[] diff --git a/indexers/db/metadata/databases/consensus/tables/public_account.yaml b/indexers/db/metadata/databases/consensus/tables/public_account.yaml new file mode 100644 index 000000000..5447215a9 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_account.yaml @@ -0,0 +1,16 @@ +table: + name: account + schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - updated_at + - free + - nonce + - reserved + - total + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_block.yaml b/indexers/db/metadata/databases/consensus/tables/public_block.yaml new file mode 100644 index 000000000..0993e0a84 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_block.yaml @@ -0,0 +1,22 @@ +table: + name: block + schema: public +select_permissions: + - role: user + permission: + columns: + - id + - events_count + - extrinsics_count + - timestamp + - blockchain_size + - height + - space_pledged + - account_id + - extrinsics_root + - hash + - parent_hash + - spec_id + - state_root + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_call.yaml b/indexers/db/metadata/databases/consensus/tables/public_call.yaml new file mode 100644 index 000000000..eed583b02 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_call.yaml @@ -0,0 +1,21 @@ +table: + name: call + schema: public +select_permissions: + - role: user + permission: + columns: + - success + - id + - created_at + - pos + - account_id + - args + - block_id + - error + - extrinsic_id + - name + - parent + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_event.yaml b/indexers/db/metadata/databases/consensus/tables/public_event.yaml new file mode 100644 index 000000000..e98786b33 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_event.yaml @@ -0,0 +1,21 @@ +table: + name: event + schema: public +select_permissions: + - role: user + permission: + columns: + - args + - block_height + - block_id + - call_id + - created_at + - extrinsic_id + - id + - index_in_block + - name + - phase + - pos + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_event_name.yaml b/indexers/db/metadata/databases/consensus/tables/public_event_name.yaml new file mode 100644 index 000000000..67346f07a --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_event_name.yaml @@ -0,0 +1,15 @@ +table: + name: event_name + schema: public +select_permissions: + - role: user + permission: + columns: + - id + - count + - created_at + - module_id + - name + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml b/indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml new file mode 100644 index 000000000..3d8485246 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml @@ -0,0 +1,26 @@ +table: + name: extrinsic + schema: public +select_permissions: + - role: user + permission: + columns: + - account_id + - args + - block_height + - block_id + - created_at + - error + - fee + - hash + - id + - index_in_block + - name + - nonce + - pos + - signature + - success + - timestamp + - tip + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_extrinsic_name.yaml b/indexers/db/metadata/databases/consensus/tables/public_extrinsic_name.yaml new file mode 100644 index 000000000..6ab23ee61 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_extrinsic_name.yaml @@ -0,0 +1,15 @@ +table: + name: extrinsic_name + schema: public +select_permissions: + - role: user + permission: + columns: + - id + - count + - created_at + - module_id + - name + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_log.yaml b/indexers/db/metadata/databases/consensus/tables/public_log.yaml new file mode 100644 index 000000000..1dad5fda2 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_log.yaml @@ -0,0 +1,14 @@ +table: + name: log + schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - block_id + - kind + - value + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_metadata.yaml b/indexers/db/metadata/databases/consensus/tables/public_metadata.yaml new file mode 100644 index 000000000..f81ca8ebb --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_metadata.yaml @@ -0,0 +1,17 @@ +table: + name: metadata + schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - sort_id + - updated_at + - block_hash + - metadata + - spec_name + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_migrations.yaml b/indexers/db/metadata/databases/consensus/tables/public_migrations.yaml new file mode 100644 index 000000000..c1c1ca6c2 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_migrations.yaml @@ -0,0 +1,3 @@ +table: + name: migrations + schema: public diff --git a/indexers/db/metadata/databases/consensus/tables/public_module.yaml b/indexers/db/metadata/databases/consensus/tables/public_module.yaml new file mode 100644 index 000000000..5ca1d7fa7 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_module.yaml @@ -0,0 +1,15 @@ +table: + name: module + schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - event_count + - extrinsic_count + - name + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_transfer.yaml b/indexers/db/metadata/databases/consensus/tables/public_transfer.yaml new file mode 100644 index 000000000..3d8fca633 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_transfer.yaml @@ -0,0 +1,16 @@ +table: + name: transfer + schema: public +select_permissions: + - role: user + permission: + columns: + - created_at + - fee + - from + - id + - timestamp + - to + - value + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/squid_processor_status.yaml b/indexers/db/metadata/databases/consensus/tables/squid_processor_status.yaml new file mode 100644 index 000000000..9eda34ddd --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/squid_processor_status.yaml @@ -0,0 +1,8 @@ +table: + name: status + schema: squid_processor +configuration: + column_config: {} + custom_column_names: {} + custom_name: consensus_status + custom_root_fields: {} diff --git a/indexers/db/metadata/databases/consensus/tables/tables.yaml b/indexers/db/metadata/databases/consensus/tables/tables.yaml new file mode 100644 index 000000000..458371b2b --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/tables.yaml @@ -0,0 +1,12 @@ +- "!include public_account.yaml" +- "!include public_block.yaml" +- "!include public_call.yaml" +- "!include public_event.yaml" +- "!include public_event_name.yaml" +- "!include public_extrinsic.yaml" +- "!include public_extrinsic_name.yaml" +- "!include public_log.yaml" +- "!include public_metadata.yaml" +- "!include public_module.yaml" +- "!include public_transfer.yaml" +- "!include squid_processor_status.yaml" diff --git a/indexers/db/metadata/databases/databases.yaml b/indexers/db/metadata/databases/databases.yaml new file mode 100644 index 000000000..d2861ed69 --- /dev/null +++ b/indexers/db/metadata/databases/databases.yaml @@ -0,0 +1,27 @@ +- name: consensus + kind: postgres + configuration: + connection_info: + database_url: + from_env: HASURA_GRAPHQL_CONSENSUS_DATABASE_URL + isolation_level: read-committed + use_prepared_statements: false + tables: "!include consensus/tables/tables.yaml" +- name: leaderboard + kind: postgres + configuration: + connection_info: + database_url: + from_env: HASURA_GRAPHQL_LEADERBOARD_DATABASE_URL + isolation_level: read-committed + use_prepared_statements: false + tables: "!include leaderboard/tables/tables.yaml" +- name: staking + kind: postgres + configuration: + connection_info: + database_url: + from_env: HASURA_GRAPHQL_STAKING_DATABASE_URL + isolation_level: read-committed + use_prepared_statements: false + tables: "!include staking/tables/tables.yaml" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml new file mode 100644 index 000000000..c85565bfb --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml @@ -0,0 +1,20 @@ +table: + name: account_extrinsic_failed_total_count + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_extrinsic_failed_total_count + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml new file mode 100644 index 000000000..77d89091d --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml @@ -0,0 +1,20 @@ +table: + name: account_extrinsic_success_total_count + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_extrinsic_success_total_count + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml new file mode 100644 index 000000000..b4025223f --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml @@ -0,0 +1,20 @@ +table: + name: account_extrinsic_total_count + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_extrinsic_total_count + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml new file mode 100644 index 000000000..b4a1d9b69 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml @@ -0,0 +1,20 @@ +table: + name: account_remark_count + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_remark_count + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml new file mode 100644 index 000000000..8261de6eb --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml @@ -0,0 +1,20 @@ +table: + name: account_transaction_fee_paid_total_value + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_transaction_fee_paid_total_value + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml new file mode 100644 index 000000000..9a1d5b359 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml @@ -0,0 +1,20 @@ +table: + name: account_transfer_receiver_total_count + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_transfer_receiver_total_count + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml new file mode 100644 index 000000000..7d8df5cb3 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml @@ -0,0 +1,20 @@ +table: + name: account_transfer_receiver_total_value + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_transfer_receiver_total_value + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml new file mode 100644 index 000000000..33ab71d50 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml @@ -0,0 +1,20 @@ +table: + name: account_transfer_sender_total_count + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_transfer_sender_total_count + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml new file mode 100644 index 000000000..a3bb40725 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml @@ -0,0 +1,20 @@ +table: + name: account_transfer_sender_total_value + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_transfer_sender_total_value + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml new file mode 100644 index 000000000..d8d30eb84 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml @@ -0,0 +1,20 @@ +table: + name: farmer_block_total_count + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_farmer_block_total_count + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml new file mode 100644 index 000000000..cb4d3861a --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml @@ -0,0 +1,20 @@ +table: + name: farmer_block_total_value + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_farmer_block_total_value + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml new file mode 100644 index 000000000..15569f00c --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml @@ -0,0 +1,20 @@ +table: + name: farmer_vote_and_block_total_count + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_farmer_vote_and_block_total_count + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml new file mode 100644 index 000000000..961424d47 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml @@ -0,0 +1,20 @@ +table: + name: farmer_vote_and_block_total_value + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_farmer_vote_and_block_total_value + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml new file mode 100644 index 000000000..b95a9e8e2 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml @@ -0,0 +1,20 @@ +table: + name: farmer_vote_total_count + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_farmer_vote_total_count + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml new file mode 100644 index 000000000..65ec8028c --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml @@ -0,0 +1,20 @@ +table: + name: farmer_vote_total_value + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_farmer_vote_total_value + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml new file mode 100644 index 000000000..535a52606 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml @@ -0,0 +1,20 @@ +table: + name: nominator_deposits_total_count + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_nominator_deposits_total_count + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml new file mode 100644 index 000000000..5bd0dcec8 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml @@ -0,0 +1,20 @@ +table: + name: nominator_deposits_total_value + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_nominator_deposits_total_value + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml new file mode 100644 index 000000000..14f660769 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml @@ -0,0 +1,20 @@ +table: + name: nominator_withdrawals_total_count + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_nominator_withdrawals_total_count + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml new file mode 100644 index 000000000..e7c03349c --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml @@ -0,0 +1,20 @@ +table: + name: operator_bundle_total_count + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_operator_bundle_total_count + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml new file mode 100644 index 000000000..92249a96b --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml @@ -0,0 +1,20 @@ +table: + name: operator_deposits_total_count + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_operator_deposits_total_count + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml new file mode 100644 index 000000000..5ae48fcf3 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml @@ -0,0 +1,20 @@ +table: + name: operator_deposits_total_value + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_operator_deposits_total_value + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml new file mode 100644 index 000000000..581523518 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml @@ -0,0 +1,20 @@ +table: + name: operator_total_rewards_collected + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_operator_total_rewards_collected + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml new file mode 100644 index 000000000..9aba085f8 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml @@ -0,0 +1,20 @@ +table: + name: operator_total_tax_collected + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_operator_total_tax_collected + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml new file mode 100644 index 000000000..e041a9c09 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml @@ -0,0 +1,20 @@ +table: + name: operator_withdrawals_total_count + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_operator_withdrawals_total_count + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/squid_processor_status.yaml b/indexers/db/metadata/databases/leaderboard/tables/squid_processor_status.yaml new file mode 100644 index 000000000..478182bd2 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/squid_processor_status.yaml @@ -0,0 +1,8 @@ +table: + name: status + schema: squid_processor +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_status + custom_root_fields: {} diff --git a/indexers/db/metadata/databases/leaderboard/tables/tables.yaml b/indexers/db/metadata/databases/leaderboard/tables/tables.yaml new file mode 100644 index 000000000..7852a401c --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/tables.yaml @@ -0,0 +1,25 @@ +- "!include public_account_extrinsic_failed_total_count.yaml" +- "!include public_account_extrinsic_success_total_count.yaml" +- "!include public_account_extrinsic_total_count.yaml" +- "!include public_account_remark_count.yaml" +- "!include public_account_transaction_fee_paid_total_value.yaml" +- "!include public_account_transfer_receiver_total_count.yaml" +- "!include public_account_transfer_receiver_total_value.yaml" +- "!include public_account_transfer_sender_total_count.yaml" +- "!include public_account_transfer_sender_total_value.yaml" +- "!include public_farmer_block_total_count.yaml" +- "!include public_farmer_block_total_value.yaml" +- "!include public_farmer_vote_and_block_total_count.yaml" +- "!include public_farmer_vote_and_block_total_value.yaml" +- "!include public_farmer_vote_total_count.yaml" +- "!include public_farmer_vote_total_value.yaml" +- "!include public_nominator_deposits_total_count.yaml" +- "!include public_nominator_deposits_total_value.yaml" +- "!include public_nominator_withdrawals_total_count.yaml" +- "!include public_operator_bundle_total_count.yaml" +- "!include public_operator_deposits_total_count.yaml" +- "!include public_operator_deposits_total_value.yaml" +- "!include public_operator_total_rewards_collected.yaml" +- "!include public_operator_total_tax_collected.yaml" +- "!include public_operator_withdrawals_total_count.yaml" +- "!include squid_processor_status.yaml" diff --git a/indexers/db/metadata/databases/staking/tables/public_account.yaml b/indexers/db/metadata/databases/staking/tables/public_account.yaml new file mode 100644 index 000000000..423b4351a --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_account.yaml @@ -0,0 +1,28 @@ +table: + name: account + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_account + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - updated_at + - accumulated_epoch_shares + - accumulated_epoch_stake + - accumulated_epoch_storage_fee_deposit + - current_share_price + - current_storage_fee_deposit + - current_total_shares + - current_total_stake + - total_deposits + - total_estimated_withdrawals + - total_tax_collected + - total_withdrawals + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_bundle.yaml b/indexers/db/metadata/databases/staking/tables/public_bundle.yaml new file mode 100644 index 000000000..4ac57df56 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_bundle.yaml @@ -0,0 +1,36 @@ +table: + name: bundle + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_bundle + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - consensus_block_number + - domain_block_number + - epoch + - rejected_transfers_claimed_count + - transfers_in_count + - transfers_out_count + - transfers_rejected_count + - burned_balance + - consensus_storage_fee + - domain_execution_fee + - total_rejected_transfers_claimed + - total_transfers_in + - total_transfers_out + - total_transfers_rejected + - total_volume + - consensus_block_hash + - domain_block_extrinsic_root + - domain_block_hash + - domain_block_id + - domain_epoch_id + - domain_id + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml b/indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml new file mode 100644 index 000000000..3ac72936a --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml @@ -0,0 +1,22 @@ +table: + name: bundle_author + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_bundle_author + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - epoch + - account_id + - bundle_id + - domain_block_id + - domain_epoch_id + - domain_id + - operator_id + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_deposit.yaml b/indexers/db/metadata/databases/staking/tables/public_deposit.yaml new file mode 100644 index 000000000..20a1f4d00 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_deposit.yaml @@ -0,0 +1,32 @@ +table: + name: deposit + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_deposit + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - status + - created_at + - domain_block_number_deposited_at + - epoch_deposited_at + - staked_at + - updated_at + - amount + - storage_fee_deposit + - total_amount + - total_withdrawn + - account_id + - domain_id + - extrinsic_hash + - nominator_id + - operator_id + - timestamp + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_domain.yaml b/indexers/db/metadata/databases/staking/tables/public_domain.yaml new file mode 100644 index 000000000..4b3f98e00 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_domain.yaml @@ -0,0 +1,58 @@ +table: + name: domain + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_domain + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - runtime + - bundle_count + - completed_epoch + - created_at + - last_bundle_at + - last_domain_block_number + - rejected_transfers_claimed_count + - runtime_id + - sort_id + - transfers_in_count + - transfers_out_count + - transfers_rejected_count + - updated_at + - accumulated_epoch_rewards + - accumulated_epoch_shares + - accumulated_epoch_stake + - accumulated_epoch_storage_fee_deposit + - current_epoch_duration + - current_share_price + - current_storage_fee_deposit + - current_total_shares + - current_total_stake + - last144_epoch_duration + - last1k_epoch_duration + - last6_epochs_duration + - last_epoch_duration + - total_burned_balance + - total_consensus_storage_fee + - total_deposits + - total_domain_execution_fee + - total_estimated_withdrawals + - total_rejected_transfers_claimed + - total_rewards_collected + - total_tax_collected + - total_transfers_in + - total_transfers_out + - total_transfers_rejected + - total_volume + - total_withdrawals + - account_id + - name + - runtime_info + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_domain_block.yaml b/indexers/db/metadata/databases/staking/tables/public_domain_block.yaml new file mode 100644 index 000000000..22be2e31c --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_domain_block.yaml @@ -0,0 +1,26 @@ +table: + name: domain_block + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_domain_block + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - block_number + - consensus_block_number + - created_at + - epoch + - updated_at + - block_hash + - consensus_block_hash + - domain_epoch_id + - domain_id + - extrinsic_root + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml b/indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml new file mode 100644 index 000000000..ce7118d82 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml @@ -0,0 +1,29 @@ +table: + name: domain_epoch + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_domain_epoch + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - block_count + - block_number_end + - block_number_start + - consensus_block_number_end + - consensus_block_number_start + - created_at + - epoch + - updated_at + - epoch_duration + - consensus_block_hash_end + - consensus_block_hash_start + - domain_id + - timestamp_end + - timestamp_start + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_migrations.yaml b/indexers/db/metadata/databases/staking/tables/public_migrations.yaml new file mode 100644 index 000000000..c1c1ca6c2 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_migrations.yaml @@ -0,0 +1,3 @@ +table: + name: migrations + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_nominator.yaml b/indexers/db/metadata/databases/staking/tables/public_nominator.yaml new file mode 100644 index 000000000..fefee4a22 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_nominator.yaml @@ -0,0 +1,46 @@ +table: + name: nominator + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_nominator + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - unlock_at_confirmed_domain_block_number + - id + - pending_action + - status + - active_epoch_count + - created_at + - pending_effective_domain_epoch + - total_deposits_count + - total_withdrawals_count + - updated_at + - accumulated_epoch_shares + - accumulated_epoch_stake + - accumulated_epoch_storage_fee_deposit + - current_share_price + - current_storage_fee_deposit + - current_total_shares + - current_total_stake + - known_shares + - known_storage_fee_deposit + - pending_amount + - pending_shares + - pending_storage_fee_deposit + - pending_storage_fee_refund + - total_deposits + - total_estimated_withdrawals + - total_storage_fee_refund + - total_withdrawal_amounts + - total_withdrawals + - account_id + - domain_id + - operator_id + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_operator.yaml b/indexers/db/metadata/databases/staking/tables/public_operator.yaml new file mode 100644 index 000000000..e764171db --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_operator.yaml @@ -0,0 +1,67 @@ +table: + name: operator + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_operator + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - email_verified + - website_verified + - id + - pending_action + - status + - active_epoch_count + - bundle_count + - created_at + - last_bundle_at + - nomination_tax + - rejected_transfers_claimed_count + - sort_id + - transfers_in_count + - transfers_out_count + - transfers_rejected_count + - updated_at + - accumulated_epoch_rewards + - accumulated_epoch_shares + - accumulated_epoch_stake + - accumulated_epoch_storage_fee_deposit + - current_epoch_rewards + - current_share_price + - current_storage_fee_deposit + - current_total_shares + - current_total_stake + - minimum_nominator_stake + - total_burned_balance + - total_consensus_storage_fee + - total_deposits + - total_domain_execution_fee + - total_estimated_withdrawals + - total_rejected_transfers_claimed + - total_rewards_collected + - total_tax_collected + - total_transfers_in + - total_transfers_out + - total_transfers_rejected + - total_volume + - total_withdrawals + - account_id + - banner + - description + - discord + - domain_id + - email + - github + - icon + - name + - raw_status + - signing_key + - twitter + - website + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_reward_event.yaml b/indexers/db/metadata/databases/staking/tables/public_reward_event.yaml new file mode 100644 index 000000000..c2ed303eb --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_reward_event.yaml @@ -0,0 +1,21 @@ +table: + name: reward_event + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_reward_event + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - block_number + - amount + - domain_id + - extrinsic_hash + - operator_id + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_stats.yaml b/indexers/db/metadata/databases/staking/tables/public_stats.yaml new file mode 100644 index 000000000..170e9404f --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_stats.yaml @@ -0,0 +1,33 @@ +table: + name: stats + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_stats + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - active_operators_count + - block_number + - deposits_count + - domains_count + - nominators_count + - operators_count + - slashed_operators_count + - withdrawals_count + - all_time_high_share_price + - all_time_high_staked + - current_share_price + - total_deposits + - total_rewards_collected + - total_shares + - total_staked + - total_tax_collected + - total_withdrawals + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml new file mode 100644 index 000000000..83e44c41d --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml @@ -0,0 +1,29 @@ +table: + name: stats_per_account + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_stats_per_account + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - block_number + - deposits_count + - nominators_count + - operators_count + - withdrawals_count + - all_time_high_share_price + - all_time_high_staked + - current_share_price + - total_deposits + - total_shares + - total_staked + - total_withdrawals + - account_id + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml new file mode 100644 index 000000000..a5a3318f6 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml @@ -0,0 +1,33 @@ +table: + name: stats_per_domain + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_stats_per_domain + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - active_operators_count + - block_number + - deposits_count + - nominators_count + - operators_count + - slashed_operators_count + - withdrawals_count + - all_time_high_share_price + - all_time_high_staked + - current_share_price + - total_deposits + - total_rewards_collected + - total_shares + - total_staked + - total_tax_collected + - total_withdrawals + - domain_id + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml new file mode 100644 index 000000000..2e1fde463 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml @@ -0,0 +1,29 @@ +table: + name: stats_per_nominator + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_stats_per_nominator + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - block_number + - deposits_count + - withdrawals_count + - all_time_high_share_price + - all_time_high_staked + - current_share_price + - total_deposits + - total_shares + - total_staked + - total_withdrawals + - domain_id + - nominator_id + - operator_id + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml new file mode 100644 index 000000000..f8e66ae18 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml @@ -0,0 +1,31 @@ +table: + name: stats_per_operator + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_stats_per_operator + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - block_number + - deposits_count + - nominators_count + - withdrawals_count + - all_time_high_share_price + - all_time_high_staked + - current_share_price + - total_deposits + - total_rewards_collected + - total_shares + - total_staked + - total_tax_collected + - total_withdrawals + - domain_id + - operator_id + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml b/indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml new file mode 100644 index 000000000..083ff4e47 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml @@ -0,0 +1,35 @@ +table: + name: withdrawal + schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_withdrawal + custom_root_fields: {} +select_permissions: + - role: user + permission: + columns: + - id + - status + - created_at + - domain_block_number_withdrawal_requested_at + - epoch_withdrawal_requested_at + - ready_at + - unlocked_at + - updated_at + - estimated_amount + - shares + - total_amount + - unlocked_amount + - unlocked_storage_fee + - account_id + - domain_id + - nominator_id + - operator_id + - unlock_extrinsic_hash + - withdraw_extrinsic_hash + - timestamp + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/squid_processor_status.yaml b/indexers/db/metadata/databases/staking/tables/squid_processor_status.yaml new file mode 100644 index 000000000..ec2690f11 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/squid_processor_status.yaml @@ -0,0 +1,8 @@ +table: + name: status + schema: squid_processor +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_status + custom_root_fields: {} diff --git a/indexers/db/metadata/databases/staking/tables/tables.yaml b/indexers/db/metadata/databases/staking/tables/tables.yaml new file mode 100644 index 000000000..3e58e0c12 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/tables.yaml @@ -0,0 +1,17 @@ +- "!include public_account.yaml" +- "!include public_bundle.yaml" +- "!include public_bundle_author.yaml" +- "!include public_deposit.yaml" +- "!include public_domain.yaml" +- "!include public_domain_block.yaml" +- "!include public_domain_epoch.yaml" +- "!include public_nominator.yaml" +- "!include public_operator.yaml" +- "!include public_reward_event.yaml" +- "!include public_stats.yaml" +- "!include public_stats_per_account.yaml" +- "!include public_stats_per_domain.yaml" +- "!include public_stats_per_nominator.yaml" +- "!include public_stats_per_operator.yaml" +- "!include public_withdrawal.yaml" +- "!include squid_processor_status.yaml" diff --git a/indexers/db/metadata/graphql_schema_introspection.yaml b/indexers/db/metadata/graphql_schema_introspection.yaml new file mode 100644 index 000000000..61a4dcac2 --- /dev/null +++ b/indexers/db/metadata/graphql_schema_introspection.yaml @@ -0,0 +1 @@ +disabled_for_roles: [] diff --git a/indexers/db/metadata/inherited_roles.yaml b/indexers/db/metadata/inherited_roles.yaml new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/indexers/db/metadata/inherited_roles.yaml @@ -0,0 +1 @@ +[] diff --git a/indexers/db/metadata/metrics_config.yaml b/indexers/db/metadata/metrics_config.yaml new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/indexers/db/metadata/metrics_config.yaml @@ -0,0 +1 @@ +{} diff --git a/indexers/db/metadata/network.yaml b/indexers/db/metadata/network.yaml new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/indexers/db/metadata/network.yaml @@ -0,0 +1 @@ +{} diff --git a/indexers/db/metadata/opentelemetry.yaml b/indexers/db/metadata/opentelemetry.yaml new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/indexers/db/metadata/opentelemetry.yaml @@ -0,0 +1 @@ +{} diff --git a/indexers/db/metadata/query_collections.yaml b/indexers/db/metadata/query_collections.yaml new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/indexers/db/metadata/query_collections.yaml @@ -0,0 +1 @@ +[] diff --git a/indexers/db/metadata/remote_schemas.yaml b/indexers/db/metadata/remote_schemas.yaml new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/indexers/db/metadata/remote_schemas.yaml @@ -0,0 +1 @@ +[] diff --git a/indexers/db/metadata/rest_endpoints.yaml b/indexers/db/metadata/rest_endpoints.yaml new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/indexers/db/metadata/rest_endpoints.yaml @@ -0,0 +1 @@ +[] diff --git a/indexers/db/metadata/version.yaml b/indexers/db/metadata/version.yaml new file mode 100644 index 000000000..0a70affa4 --- /dev/null +++ b/indexers/db/metadata/version.yaml @@ -0,0 +1 @@ +version: 3 diff --git a/indexers/db/package.json b/indexers/db/package.json new file mode 100644 index 000000000..a1f0bbe7c --- /dev/null +++ b/indexers/db/package.json @@ -0,0 +1,25 @@ +{ + "name": "db", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/autonomys/astral" + }, + "author": { + "name": "Autonomys", + "url": "https://www.autonomys.xyz" + }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, + "scripts": { + "console": "hasura console", + "metadata": "hasura metadata apply --skip-update-check", + "start": "yarn metadata && yarn console" + }, + "devDependencies": { + "hasura-cli": "2.36.2" + } +} diff --git a/indexers/db/yarn.lock b/indexers/db/yarn.lock new file mode 100644 index 000000000..2e093d5aa --- /dev/null +++ b/indexers/db/yarn.lock @@ -0,0 +1,80 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@^1.6.0: + version "1.7.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" + integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +chalk-template@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-1.1.0.tgz#ffc55db6dd745e9394b85327c8ac8466edb7a7b1" + integrity sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg== + dependencies: + chalk "^5.2.0" + +chalk@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +hasura-cli@2.36.2: + version "2.36.2" + resolved "https://registry.yarnpkg.com/hasura-cli/-/hasura-cli-2.36.2.tgz#78bcb2200d2c062c73d046ef357bfa95f895672b" + integrity sha512-sB9Mu+wDtBQzUoupK6SkZppNQktoZt3oY1w3/t/KXf4+x/I3CG2lV7IhC9ZBrZoNoI93fiLLE3blhmxokOmOIw== + dependencies: + axios "^1.6.0" + chalk-template "^1.1.0" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== diff --git a/indexers/general-squid/.dockerignore b/indexers/general-squid/.dockerignore deleted file mode 100644 index 27c983bc0..000000000 --- a/indexers/general-squid/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -/.git -/node_modules -/lib -/*Versions.jsonl diff --git a/indexers/general-squid/.env.local b/indexers/general-squid/.env.local deleted file mode 100644 index 44b7530cc..000000000 --- a/indexers/general-squid/.env.local +++ /dev/null @@ -1,4 +0,0 @@ -DB_NAME=general-squid -RPC_ENDPOINT=wss://rpc-0.gemini-3h.subspace.network/ws -GQL_PORT=4452 -DB_PORT=5435 diff --git a/indexers/general-squid/.env.sample b/indexers/general-squid/.env.sample deleted file mode 100644 index ad37cc98a..000000000 --- a/indexers/general-squid/.env.sample +++ /dev/null @@ -1,4 +0,0 @@ -DB_NAME=general-squid -RPC_ENDPOINT=wss://rpc-0.gemini-3h.subspace.network/ws -GQL_PORT=4450 -DB_PORT=5433 diff --git a/indexers/general-squid/.github/ISSUE_TEMPLATE/bug_report.md b/indexers/general-squid/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index bf3db9c69..000000000 --- a/indexers/general-squid/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,45 +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. - -**Environment (please complete the following information):** - - specify the version of the core packages (@subsquid/cli, @subsquid/substrate-processor, ...) - - node.js version - - npm version - - OS version - - Reproducible example or a repo link - -**Applicable to decoding issues:** - - chain name - - typesBundle (if it's not built-in) -optional: - - block - - extrinsic - - call - - event - - spec version - - endpoint - -**Additional context** -Add any other context about the problem here. diff --git a/indexers/general-squid/.gitignore b/indexers/general-squid/.gitignore deleted file mode 100644 index 03865ae03..000000000 --- a/indexers/general-squid/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -/node_modules -/lib -/builds - -/**Versions.json -/**Versions.jsonl - -# IDE files -/.idea -/.env -/data \ No newline at end of file diff --git a/indexers/general-squid/Dockerfile b/indexers/general-squid/Dockerfile deleted file mode 100644 index 2616ea0a4..000000000 --- a/indexers/general-squid/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -FROM node:20-alpine AS node -FROM node AS node-with-gyp -RUN apk add g++ make python3 -FROM node-with-gyp AS builder -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -ADD assets assets -ADD db db -ADD schema.graphql . -RUN npm ci -ADD tsconfig.json . -ADD src src -RUN npm run build -FROM node-with-gyp AS deps -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -RUN npm install -g npm@10.5.2 && npm ci --production - -FROM node AS squid -WORKDIR /squid -COPY --from=deps /squid/package.json . -COPY --from=deps /squid/package-lock.json . -COPY --from=deps /squid/node_modules node_modules -COPY --from=builder /squid/lib lib -COPY --from=builder /squid/assets assets -COPY --from=builder /squid/db db -COPY --from=builder /squid/schema.graphql schema.graphql -ADD commands.json . -RUN echo -e "loglevel=silent\\nupdate-notifier=false" > /squid/.npmrc -RUN npm i -g @subsquid/commands && mv $(which squid-commands) /usr/local/bin/sqd -EXPOSE 3000 -EXPOSE 4350 -ENV PROCESSOR_PROMETHEUS_PORT 3000 - -FROM squid AS processor -CMD ["sqd", "process:prod"] diff --git a/indexers/general-squid/Dockerfile-debug b/indexers/general-squid/Dockerfile-debug deleted file mode 100644 index 9b79afe49..000000000 --- a/indexers/general-squid/Dockerfile-debug +++ /dev/null @@ -1,59 +0,0 @@ -FROM node:20-alpine AS node - -FROM node AS node-with-gyp -RUN apk add g++ make python3 - -FROM node-with-gyp AS builder -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -ADD assets assets -ADD db db -ADD schema.graphql . -RUN npm ci -ADD tsconfig.json . -ADD src src -RUN npm run build - -FROM node-with-gyp AS deps -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -RUN npm install -g npm@10.5.2 && npm ci --production - -FROM node AS squid -WORKDIR /squid -COPY --from=deps /squid/package.json . -COPY --from=deps /squid/package-lock.json . -COPY --from=deps /squid/node_modules node_modules -COPY --from=builder /squid/lib lib -COPY --from=builder /squid/assets assets -COPY --from=builder /squid/db db -COPY --from=builder /squid/schema.graphql schema.graphql -ADD commands.json . -RUN echo -e "loglevel=silent\\nupdate-notifier=false" > /squid/.npmrc -RUN npm i -g @subsquid/commands && mv $(which squid-commands) /usr/local/bin/sqd -RUN npm install -g clinic -EXPOSE 3000 -EXPOSE 4350 -ENV PROCESSOR_PROMETHEUS_PORT 3000 - -FROM squid AS processor -ENV NODE_OPTIONS="--max-old-space-size=8192" - -# Install Clinic.js and create a wrapper script for all profilers -RUN npm install -g clinic && \ - echo '#!/bin/sh' > /usr/local/bin/run-with-clinic.sh && \ - echo 'case "$1" in' >> /usr/local/bin/run-with-clinic.sh && \ - echo ' "doctor") shift; clinic doctor --on-port "echo Clinic Doctor is running. Press Ctrl+C to stop." -- sqd "$@" ;;' >> /usr/local/bin/run-with-clinic.sh && \ - echo ' "bubbleprof") shift; clinic bubbleprof --on-port "echo Clinic Bubbleprof is running. Press Ctrl+C to stop." -- sqd "$@" ;;' >> /usr/local/bin/run-with-clinic.sh && \ - echo ' "flame") shift; clinic flame --on-port "echo Clinic Flame is running. Press Ctrl+C to stop." -- sqd "$@" ;;' >> /usr/local/bin/run-with-clinic.sh && \ - echo ' "heapprofiler") shift; clinic heapprofiler --on-port "echo Clinic Heapprofiler is running. Press Ctrl+C to stop." -- sqd "$@" ;;' >> /usr/local/bin/run-with-clinic.sh && \ - echo ' *) sqd "$@" ;;' >> /usr/local/bin/run-with-clinic.sh && \ - echo 'esac' >> /usr/local/bin/run-with-clinic.sh && \ - chmod +x /usr/local/bin/run-with-clinic.sh - -# Expose port for Clinic.js dashboard -EXPOSE 9229 - -CMD ["run-with-clinic.sh", "process:prod"] diff --git a/indexers/general-squid/README.md b/indexers/general-squid/README.md deleted file mode 100644 index df789a5f4..000000000 --- a/indexers/general-squid/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# General-Squid Indexer - -This directory contains the General-Squid indexer for the Astral project. It is based on a template from Subsquid and has been customized to fit our specific needs for indexing and querying blockchain data. - -## Overview - -General-Squid is tailored to handle general data indexing across the Astral blockchain. It accumulates data from various sources, primarily focusing on account transfers, and serves this data via a GraphQL API. - -## Key Features - -- Indexing of account transfers across the blockchain. -- Access to indexed data through a well-defined GraphQL API. - -## Getting Started - -To get started with the General-Squid indexer, follow these steps: - -1. Ensure that Node.js (16.x or later) and Docker are installed on your machine. -2. Clone the repository and navigate to the General-Squid directory. -3. Install dependencies and start the indexing and query services. - -## References and Resources - -- This indexer is based on the [Squid Substrate template](https://github.com/subsquid-labs/squid-substrate-template) by Subsquid. Visit the original repository for a detailed understanding of the structure and conventions used. - -## Development Guidelines - -Follow these guidelines to contribute to the General-Squid indexer: - -1. Make sure to follow the coding standards and guidelines of the project. -2. Test all changes thoroughly before pushing them to the repository. -3. Document any significant changes or enhancements in the codebase. - -## Additional Information - -For more information on how to deploy and manage your indexer, please consult the [deployment guide](https://docs.subsquid.io/deploy-squid/) provided by Subsquid. - -## License - -The General-Squid indexer is open-sourced under the MIT License, consistent with the rest of the Astral project. diff --git a/indexers/general-squid/assets/README.MD b/indexers/general-squid/assets/README.MD deleted file mode 100644 index 23a55abb7..000000000 --- a/indexers/general-squid/assets/README.MD +++ /dev/null @@ -1,3 +0,0 @@ -# Assets - -`assets` is the designated folder for any additional files to be used by the squid, for example a static data file. The folder is added by default to `Dockerfile` and is kept when the squid is deployed to the Aquairum. \ No newline at end of file diff --git a/indexers/general-squid/commands.json b/indexers/general-squid/commands.json deleted file mode 100644 index 294bca5ee..000000000 --- a/indexers/general-squid/commands.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "$schema": "https://cdn.subsquid.io/schemas/commands.json", - "commands": { - "clean": { - "description": "delete all build artifacts", - "cmd": ["npx", "--yes", "rimraf", "lib"] - }, - "build": { - "description": "Build the squid project", - "deps": ["clean"], - "cmd": ["tsc"] - }, - "up": { - "description": "Start a PG database", - "cmd": ["docker", "compose", "up", "-d"] - }, - "up-local": { - "description": "Start a PG database", - "cmd": ["docker", "compose", "-f", "docker-compose-local.yml", "up", "-d"] - }, - "down": { - "description": "Drop a PG database", - "cmd": ["docker", "compose", "down"] - }, - "migration:apply": { - "description": "Apply the DB migrations", - "cmd": ["squid-typeorm-migration", "apply"] - }, - "migration:generate": { - "description": "Generate a DB migration matching the TypeORM entities", - "deps": ["build", "migration:clean"], - "cmd": ["squid-typeorm-migration", "generate"] - }, - "migration:clean": { - "description": "Clean the migrations folder", - "cmd": ["npx", "--yes", "rimraf", "./db/migrations"] - }, - "migration": { - "deps": ["build"], - "cmd": ["squid-typeorm-migration", "generate"], - "hidden": true - }, - "codegen": { - "description": "Generate TypeORM entities from the schema file", - "cmd": ["squid-typeorm-codegen"] - }, - "typegen": { - "description": "Generate data access classes for an substrate metadata", - "cmd": ["squid-substrate-typegen", "./typegen.json"] - }, - "process": { - "description": "Load .env and start the squid processor", - "deps": ["build", "migration:apply"], - "cmd": [ - "node", - "--max-old-space-size=8192", - "--require=dotenv/config", - "lib/main.js" - ] - }, - "process:prod": { - "description": "Start the squid processor", - "deps": ["migration:apply"], - "cmd": ["node", "lib/main.js"], - "hidden": true - }, - "serve": { - "description": "Start the GraphQL API server", - "cmd": ["squid-graphql-server"] - }, - "serve:prod": { - "description": "Start the GraphQL API server with caching and limits", - "cmd": [ - "squid-graphql-server", - "--dumb-cache", - "in-memory", - "--dumb-cache-ttl", - "1000", - "--dumb-cache-size", - "100", - "--dumb-cache-max-age", - "1000" - ] - }, - "check-updates": { - "cmd": [ - "npx", - "--yes", - "npm-check-updates", - "--filter=/subsquid/", - "--upgrade" - ], - "hidden": true - }, - "bump": { - "description": "Bump @subsquid packages to the latest versions", - "deps": ["check-updates"], - "cmd": ["npm", "i", "-f"] - }, - "open": { - "description": "Open a local browser window", - "cmd": ["npx", "--yes", "opener"] - }, - "metadata:explore": { - "description": "Explore the metadata of a Substrate chain", - "cmd": [ - "npx", - "substrate-metadata-explorer", - "--rpc=https://rpc-0.gemini-3h.subspace.network/ws", - "--out=gemini3h.jsonl" - ] - } - } -} diff --git a/indexers/general-squid/docker-compose-debug.yml b/indexers/general-squid/docker-compose-debug.yml deleted file mode 100644 index c1a2d5e8a..000000000 --- a/indexers/general-squid/docker-compose-debug.yml +++ /dev/null @@ -1,68 +0,0 @@ -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: general-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "5432:5432" - volumes: - - ./data/db:/var/lib/postgresql/data - - api: - image: squid-processor:debug # Use your custom image - environment: - - DB_NAME=general-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - - GQL_PORT=4350 - ports: - - "4350:4350" - command: ["run-with-clinic.sh", "serve:prod"] - depends_on: - - db - - processor: - image: squid-processor:debug # Use your custom image - environment: - - DB_NAME=general-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - ports: - - "3000:3000" - - "9229:9229" # For Clinic.js - volumes: - - ./clinic-output:/squid/.clinic # Mount a volume for Clinic.js output - command: ["run-with-clinic.sh", "doctor", "process:prod"] # Run with Clinic Doctor - depends_on: - - db - - -# To use this setup: - -# First, build your custom Docker image using the Dockerfile-debug file. -# docker build -t squid-processor:debug -f Dockerfile-debug . - -# Save the above docker-compose.yml file. -# Run your application with Docker Compose: -# docker-compose up - - -# This configuration runs the processor with Clinic Doctor. To use different profilers, you can modify the command for the processor service: - -# For Bubbleprof: -# command: ["run-with-clinic.sh", "bubbleprof", "process:prod"] - -# For Flame: -# command: ["run-with-clinic.sh", "flame", "process:prod"] - -# For Heapprofiler: -# command: ["run-with-clinic.sh", "heapprofiler", "process:prod"] - -# To run without profiling: -# command: ["run-with-clinic.sh", "process:prod"] - -# After running, you can find the Clinic.js output in the ./clinic-output directory on your host machine. diff --git a/indexers/general-squid/docker-compose-local.yml b/indexers/general-squid/docker-compose-local.yml deleted file mode 100644 index 52066d512..000000000 --- a/indexers/general-squid/docker-compose-local.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: "3" - -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: general-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "${DB_PORT}:5432" diff --git a/indexers/general-squid/docker-compose.yml b/indexers/general-squid/docker-compose.yml deleted file mode 100644 index e85660b57..000000000 --- a/indexers/general-squid/docker-compose.yml +++ /dev/null @@ -1,39 +0,0 @@ -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: general-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "5432:5432" - # command: ["postgres", "-c", "log_statement=all"] - volumes: - - ./data/db:/var/lib/postgresql/data - api: - image: ghcr.io/subspace/blockexplorer-general:latest - environment: - - DB_NAME=general-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - - GQL_PORT=4350 - ports: - # GraphQL endpoint at port 4350 - - "4350:4350" - command: ["sqd", "serve:prod"] - depends_on: - - db - processor: - image: ghcr.io/subspace/blockexplorer-general:latest - environment: - - DB_NAME=general-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - ports: - # prometheus metrics exposed at port 3000 - - "3000:3000" - command: ["sqd", "process:prod"] - depends_on: - - db diff --git a/indexers/general-squid/package.json b/indexers/general-squid/package.json deleted file mode 100644 index 09532153a..000000000 --- a/indexers/general-squid/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "squid", - "private": true, - "engines": { - "node": ">=16" - }, - "scripts": { - "build": "rm -rf lib && tsc", - "db:migrate": "npx squid-typeorm-migration apply", - "processor:start": "node lib/processor.js" - }, - "dependencies": { - "@belopash/typeorm-store": "^1.2.2", - "@polkadot/api": "^10.12.2", - "@polkadot/util": "^12.6.2", - "@subsquid/archive-registry": "^3.3.0", - "@subsquid/graphql-server": "^4.5.0", - "@subsquid/ss58": "^2.0.2", - "@subsquid/substrate-processor": "^8.1.1", - "@subsquid/typeorm-migration": "^1.3.0", - "dotenv": "^16.4.4", - "pg": "8.11.3", - "rimraf": "^5.0.5", - "typeorm": "^0.3.20" - }, - "devDependencies": { - "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/substrate-typegen": "^8.0.2", - "@subsquid/typeorm-codegen": "^1.3.3", - "@types/node": "^20.11.17", - "typescript": "^5.3.3" - } -} diff --git a/indexers/general-squid/schema.graphql b/indexers/general-squid/schema.graphql deleted file mode 100644 index c29c0a64d..000000000 --- a/indexers/general-squid/schema.graphql +++ /dev/null @@ -1,124 +0,0 @@ -type Block @entity { - id: ID! @index - height: Int! @index - hash: String! @index - parentHash: String! - stateRoot: String! - extrinsicsRoot: String! - specId: String! - specName: String! - specVersion: Int! @index - implName: String! - implVersion: Int! - timestamp: DateTime! @index - validator: Bytes @index - extrinsicsCount: Int! - callsCount: Int! - eventsCount: Int! - logsCount: Int! - spacePledged: BigInt! - blockchainSize: BigInt! - author: String - extrinsics: [Extrinsic!]! - @derivedFrom(field: "block") - @cardinality(value: 1000) - events: [Event!]! @derivedFrom(field: "block") @cardinality(value: 1000) - calls: [Call!]! @derivedFrom(field: "block") @cardinality(value: 1000) - logs: [Log!]! @derivedFrom(field: "block") @cardinality(value: 1000) -} - -type ExtrinsicSignature { - address: JSON - signature: JSON - signedExtensions: JSON -} - -type ExtrinsicModuleName @entity { - id: ID! @index - name: String! @index -} - -type Extrinsic @entity { - id: ID! @index - block: Block! - call: Call - index: Int! - version: Int! - signature: ExtrinsicSignature - tip: BigInt - fee: BigInt - success: Boolean! @index - error: JSON - hash: String! @index - timestamp: DateTime! @index - name: String! @index - signer: String - args: JSON - events: [Event] @derivedFrom(field: "extrinsic") - calls: [Call!] @derivedFrom(field: "extrinsic") -} - -type EventModuleName @entity { - id: ID! @index - name: String! @index -} - -type Event @entity @index(fields: ["id", "pallet", "name"]) { - id: ID! @index - block: Block - extrinsic: Extrinsic - call: Call - index: Int! - phase: String! - pallet: String! @index - name: String! @index - timestamp: DateTime! @index - pos: Int - args: JSON - argsStr: [String] -} - -type Call @entity @index(fields: ["id", "pallet", "name"]) { - id: ID! @index - block: Block! - extrinsic: Extrinsic! - parent: Call - address: [Int!]! - success: Boolean! @index - error: JSON - pallet: String! @index - name: String! - timestamp: DateTime! @index - signer: String @index - args: JSON - argsStr: [String] - subcalls: [Call]! @derivedFrom(field: "parent") - events: [Event]! @derivedFrom(field: "call") - pos: Int -} - -type Log @entity { - id: ID! @index - kind: String! @index - value: JSON - block: Block! -} - -enum CounterLevel { - Global - Pallet - Item -} - -enum ItemType { - Extrinsics - Calls - Events -} - -type ItemsCounter @entity { - id: ID! @index - type: ItemType! @index - level: CounterLevel! @index - total: Int! @index -} diff --git a/indexers/general-squid/scripts/docker-run.sh b/indexers/general-squid/scripts/docker-run.sh deleted file mode 100644 index 1947733d9..000000000 --- a/indexers/general-squid/scripts/docker-run.sh +++ /dev/null @@ -1,5 +0,0 @@ -set -e -docker build . --target processor -t squid-processor -# make sure the port matches .env. -# For Linux, add --add-host=host.docker.internal:host-gateway -docker run --rm -e DB_HOST=host.docker.internal --env-file=.env squid-processor \ No newline at end of file diff --git a/indexers/general-squid/scripts/install-sqd.sh b/indexers/general-squid/scripts/install-sqd.sh deleted file mode 100644 index 860d58c15..000000000 --- a/indexers/general-squid/scripts/install-sqd.sh +++ /dev/null @@ -1,39 +0,0 @@ -#! /bin/bash - -set -e - -if ! command -v sqd &> /dev/null; then - echo "sqd is required but not installed. Proceeding with the rest of the script..." -else - NODE_VERSION=20.11.1 - - mkdir -p ~/{opt,src,bin} - cd ~/src - wget -S https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz - tar xvf node-v${NODE_VERSION}-linux-x64.tar.xz -C ~/opt - - cd ~/bin - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/node node - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/npm npm - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/npx npx - - npm i -g @subsquid/cli@latest - - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/sqd sqd - - echo "export PATH=$HOME/bin:$PATH" >> ~/.bash_profile - echo 'export NODE_OPTIONS="--max-old-space-size=4096"' >> ~/.bash_profile - - cd ~/ - git clone https://github.com/autonomys/astral.git - - ln -s astral/general-squid general-squid - - cd general-squid - npm ci - sqd up - sqd build - cp -rf .env.sample .env - export NODE_OPTIONS="--max-old-space-size=4096" - nohup sqd run -f .env . & -fi diff --git a/indexers/general-squid/scripts/sub-client.js b/indexers/general-squid/scripts/sub-client.js deleted file mode 100644 index 87ba38a3c..000000000 --- a/indexers/general-squid/scripts/sub-client.js +++ /dev/null @@ -1,42 +0,0 @@ -const WebSocket = require('ws') -const { createClient } = require('graphql-ws'); - -const port = process.env.GQL_PORT || 4350 -const host = process.env.GQL_HOST || 'localhost' -const proto = process.env.GQL_PROTO || 'ws' - - -const client = createClient({ - webSocketImpl: WebSocket, - url: `${proto}://${host}:${port}/graphql`, -}); - -client.subscribe( - { - query: ` - subscription { - transfers(limit: 5, orderBy: timestamp_DESC) { - amount - blockNumber - from { - id - } - to { - id - } - } - } - `, - }, - { - next: (data) => { - console.log(`New transfers: ${JSON.stringify(data)}`); - }, - error: (error) => { - console.error('error', error); - }, - complete: () => { - console.log('done!'); - }, - } -); \ No newline at end of file diff --git a/indexers/general-squid/squid.yaml b/indexers/general-squid/squid.yaml deleted file mode 100644 index 268c443a7..000000000 --- a/indexers/general-squid/squid.yaml +++ /dev/null @@ -1,18 +0,0 @@ -manifestVersion: subsquid.io/v0.1 -name: general-squid -version: 1 -description: Substrate squid template -build: -deploy: - addons: - postgres: - processor: - cmd: - - sqd - - process:prod - env: - RPC_ENDPOINT: ${{ secrets.RPC_ENDPOINT }} - api: - cmd: - - sqd - - serve:prod diff --git a/indexers/general-squid/src/blocks/databaseOperations.ts b/indexers/general-squid/src/blocks/databaseOperations.ts deleted file mode 100644 index 5a06bdeb0..000000000 --- a/indexers/general-squid/src/blocks/databaseOperations.ts +++ /dev/null @@ -1,181 +0,0 @@ -import { StoreWithCache } from "@belopash/typeorm-store"; -import { decodeHex } from "@subsquid/substrate-processor"; -import { randomUUID } from "crypto"; -import * as model from "../model"; -import { - BlockHeader, - Call, - Event, - Extrinsic, - ProcessorContext, -} from "../processor"; -import { - blockchainHistorySize, - totalSpacePledged, -} from "../types/transaction-fees/constants"; -import { decodeLog } from "./utils"; - -export async function saveBlock( - ctx: ProcessorContext, - block: BlockHeader, - author: string, - extrinsicsCount: number, - eventsCount: number, - logsCount: number, - callsCount: number -): Promise { - const spacePledged = totalSpacePledged.v0.get(block); - const historySize = blockchainHistorySize.v0.get(block); - - const entity = new model.Block({ - id: block.id, - height: block.height, - hash: block.hash, - parentHash: block.parentHash, - stateRoot: block.stateRoot, - extrinsicsRoot: block.extrinsicsRoot, - specId: `${block.specName}@${block.specVersion}`, - specName: block.specName, - specVersion: block.specVersion, - implName: block.implName, - implVersion: block.implVersion, - timestamp: new Date(block.timestamp ?? 0), - validator: block.validator ? decodeHex(block.validator) : undefined, - spacePledged, - blockchainSize: historySize, - author, - extrinsicsCount, - callsCount, - eventsCount, - logsCount, - }); - - await ctx.store.insert(entity); - - // return the saved block - return entity; -} - -export async function saveExtrinsic( - ctx: ProcessorContext, - block: model.Block, - extrinsic: Extrinsic -) { - const entity = new model.Extrinsic({ - id: extrinsic.id, - block, - index: extrinsic.index, - version: extrinsic.version, - signature: new model.ExtrinsicSignature(extrinsic.signature), - tip: extrinsic.tip, - fee: extrinsic.fee, - success: extrinsic.success, - error: extrinsic.error, - hash: extrinsic.hash, - timestamp: new Date(block.timestamp ?? 0), - args: extrinsic.call?.args, - name: extrinsic.call?.name, - }); - - if (extrinsic.call?.name) { - const moduleNameEntity = new model.ExtrinsicModuleName({ - id: randomUUID(), - name: extrinsic.call.name, - }); - - await ctx.store.insert(moduleNameEntity); - } - - await ctx.store.insert(entity); -} - -export async function saveCall( - ctx: ProcessorContext, - block: model.Block, - call: Call -) { - const extrinsic = await ctx.store.getOrFail( - model.Extrinsic, - call.getExtrinsic().id - ); - - const parent = call.parentCall - ? await ctx.store.getOrFail(model.Call, call.parentCall.id) - : undefined; - - const [pallet, name] = call.name.split("."); - - const entity = new model.Call({ - id: call.id, - block, - extrinsic, - parent, - address: call.address, - success: call.success, - error: call.error, - pallet, - name, - timestamp: new Date(block.timestamp ?? 0), - args: call.args, - }); - await ctx.store.insert(entity); - - if (call.address.length == 0) { - extrinsic.call = entity; - await ctx.store.upsert(extrinsic); - } -} - -export async function saveEvent( - ctx: ProcessorContext, - block: model.Block, - event: Event -) { - const extrinsic = event.extrinsic - ? await ctx.store.getOrFail(model.Extrinsic, event.extrinsic.id) - : undefined; - const call = event.call - ? await ctx.store.getOrFail(model.Call, event.call.id) - : undefined; - - const [pallet, name] = event.name.split("."); - - const entity = new model.Event({ - id: event.id, - block, - extrinsic, - call, - index: event.index, - phase: event.phase, - pallet, - name, - timestamp: new Date(block.timestamp ?? 0), - args: event.args, - }); - await ctx.store.insert(entity); - - const moduleNameEntity = new model.EventModuleName({ - id: randomUUID(), - name: event.name, - }); - - await ctx.store.insert(moduleNameEntity); -} - -export async function saveLog( - ctx: ProcessorContext, - block_: BlockHeader, - log: any, - index: number -) { - const block = await ctx.store.getOrFail(model.Block, block_.id); - const entity = new model.Log({ - id: `${block.id}-${index}`, - kind: log.__kind, - // uncast to access 'value' prop, which is not present on all DigestItems - // eslint-disable-next-line @typescript-eslint/no-explicit-any - value: decodeLog(log.value), - block, - }); - await ctx.store.insert(entity); -} diff --git a/indexers/general-squid/src/blocks/types.ts b/indexers/general-squid/src/blocks/types.ts deleted file mode 100644 index f0e59898e..000000000 --- a/indexers/general-squid/src/blocks/types.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Struct, u64 } from "@polkadot/types"; -import { AccountId32 } from "@polkadot/types/interfaces"; - -interface Solution extends Struct { - readonly public_key: AccountId32; - readonly reward_address: AccountId32; -} - -export interface SubPreDigest extends Struct { - readonly slot: u64; - readonly solution: Solution; -} - -export const BlockChainTypes = { - Solution: { - public_key: "AccountId32", - reward_address: "AccountId32", - }, - SubPreDigest: { - slot: "u64", - solution: "Solution", - }, -}; diff --git a/indexers/general-squid/src/blocks/utils.ts b/indexers/general-squid/src/blocks/utils.ts deleted file mode 100644 index 2aa54b22b..000000000 --- a/indexers/general-squid/src/blocks/utils.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { ApiPromise } from "@polkadot/api"; -import { hexToString } from "@polkadot/util"; -import { BlockHeader } from "@subsquid/substrate-processor"; -import { digest } from "../types/system/storage"; -import { DigestItem_PreRuntime } from "../types/v1"; -import { SubPreDigest } from "./types"; - -/** - * Converts a SCALE-encoded log into a human-readable format - * @param {null | Uint8Array | Uint8Array[]} value - SCALE-encoded log - * @return {null | {data: string} | {engine: string, data: string}} - human-readable log - */ -export function decodeLog( - value: null | Uint8Array | Uint8Array[] | [string, string] -) { - if (!value) return null; - - if (Array.isArray(value)) { - const engine = hexToString(value[0].toString()); - const data = value[1]; - - return { - engine, - data, - }; - } - - return { data: value }; -} - -export async function getBlockAuthor(block: BlockHeader, api: ApiPromise) { - const digestLogs = await digest.v0.get(block); - - const preRuntimeRaw = digestLogs?.logs.find( - (digestItem) => digestItem.__kind === "PreRuntime" - ); - - if (!preRuntimeRaw) return ""; - - const value = decodeLog((preRuntimeRaw as DigestItem_PreRuntime).value); - const type: SubPreDigest = api.registry.createType( - "SubPreDigest", - value?.data - ); - - return type.solution.reward_address.toString(); -} diff --git a/indexers/general-squid/src/config/processorConfig.ts b/indexers/general-squid/src/config/processorConfig.ts deleted file mode 100644 index 83cab4cc7..000000000 --- a/indexers/general-squid/src/config/processorConfig.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { SubstrateBatchProcessor } from "@subsquid/substrate-processor"; - -export interface ProcessorConfig { - chainName: string; - prefix?: number | string; - rpcEndpoint: Parameters["setRpcEndpoint"]>[0]; - blockRange?: Parameters["setBlockRange"]>[0]; -} diff --git a/indexers/general-squid/src/main.ts b/indexers/general-squid/src/main.ts deleted file mode 100644 index ccd130554..000000000 --- a/indexers/general-squid/src/main.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { - StoreWithCache, - TypeormDatabaseWithCache, -} from "@belopash/typeorm-store"; -import { ApiPromise, WsProvider } from "@polkadot/api"; - -import { - saveBlock, - saveCall, - saveEvent, - saveExtrinsic, - saveLog, -} from "./blocks/databaseOperations"; -import { BlockChainTypes as types } from "./blocks/types"; -import { getBlockAuthor } from "./blocks/utils"; -import { Block, BlockHeader, ProcessorContext, processor } from "./processor"; -import { digest } from "./types/system/storage"; - -processor.run(new TypeormDatabaseWithCache(), async (ctx) => { - const api = await createApi(); - - for (const blockData of ctx.blocks) { - logBlockProcessing(ctx, blockData); - - const blockAuthor = await getBlockAuthor(blockData.header, api); - await processBlock(ctx, blockData, blockAuthor); - } - - logCompletion(ctx); -}); - -// Create API instance -async function createApi() { - const provider = new WsProvider(process.env.RPC_ENDPOINT); - return ApiPromise.create({ provider, types }); -} - -// Log information about the block being processed -function logBlockProcessing( - ctx: ProcessorContext, - { header, calls, events, extrinsics }: Block -) { - ctx.log.child( - `block ${header.height}: extrinsics - ${extrinsics.length}, calls - ${calls.length}, events - ${events.length}` - ); -} - -// Log the completion of block processing -function logCompletion(ctx: ProcessorContext) { - ctx.log.child("blocks").info(`added: ${ctx.blocks.length} blocks`); -} - -// Process digest logs for a block -async function processDigestLogs( - ctx: ProcessorContext, - block: BlockHeader -) { - const digestLogs = await digest.v0.get(block); - - if (digestLogs) { - for (const [index, log] of digestLogs.logs.entries()) { - await saveLog(ctx, block, log, index); - } - } -} - -// Process and save block data -async function processBlock( - ctx: ProcessorContext, - { header, calls, events, extrinsics }: Block, - blockAuthor: string -) { - let savedBlock = await saveBlock( - ctx, - header, - blockAuthor, - extrinsics.length, - events.length, - 0, - calls.length - ); - - await Promise.all( - extrinsics.map((extrinsic) => saveExtrinsic(ctx, savedBlock, extrinsic)) - ); - - await Promise.all( - calls.reverse().map((call) => saveCall(ctx, savedBlock, call)) - ); - - await Promise.all(events.map((event) => saveEvent(ctx, savedBlock, event))); - - await processDigestLogs(ctx, header); -} diff --git a/indexers/general-squid/src/model/generated/_counterLevel.ts b/indexers/general-squid/src/model/generated/_counterLevel.ts deleted file mode 100644 index fd3c55e12..000000000 --- a/indexers/general-squid/src/model/generated/_counterLevel.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum CounterLevel { - Global = "Global", - Pallet = "Pallet", - Item = "Item", -} diff --git a/indexers/general-squid/src/model/generated/_extrinsicSignature.ts b/indexers/general-squid/src/model/generated/_extrinsicSignature.ts deleted file mode 100644 index a0c4a71c7..000000000 --- a/indexers/general-squid/src/model/generated/_extrinsicSignature.ts +++ /dev/null @@ -1,49 +0,0 @@ -import assert from "assert" -import * as marshal from "./marshal" - -export class ExtrinsicSignature { - private _address!: unknown | undefined | null - private _signature!: unknown | undefined | null - private _signedExtensions!: unknown | undefined | null - - constructor(props?: Partial>, json?: any) { - Object.assign(this, props) - if (json != null) { - this._address = json.address - this._signature = json.signature - this._signedExtensions = json.signedExtensions - } - } - - get address(): unknown | undefined | null { - return this._address - } - - set address(value: unknown | undefined | null) { - this._address = value - } - - get signature(): unknown | undefined | null { - return this._signature - } - - set signature(value: unknown | undefined | null) { - this._signature = value - } - - get signedExtensions(): unknown | undefined | null { - return this._signedExtensions - } - - set signedExtensions(value: unknown | undefined | null) { - this._signedExtensions = value - } - - toJSON(): object { - return { - address: this.address, - signature: this.signature, - signedExtensions: this.signedExtensions, - } - } -} diff --git a/indexers/general-squid/src/model/generated/_itemType.ts b/indexers/general-squid/src/model/generated/_itemType.ts deleted file mode 100644 index 4888f0722..000000000 --- a/indexers/general-squid/src/model/generated/_itemType.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum ItemType { - Extrinsics = "Extrinsics", - Calls = "Calls", - Events = "Events", -} diff --git a/indexers/general-squid/src/model/generated/block.model.ts b/indexers/general-squid/src/model/generated/block.model.ts deleted file mode 100644 index 1537e36b2..000000000 --- a/indexers/general-squid/src/model/generated/block.model.ts +++ /dev/null @@ -1,90 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, OneToMany as OneToMany_} from "typeorm" -import * as marshal from "./marshal" -import {Extrinsic} from "./extrinsic.model" -import {Event} from "./event.model" -import {Call} from "./call.model" -import {Log} from "./log.model" - -@Entity_() -export class Block { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("int4", {nullable: false}) - height!: number - - @Index_() - @Column_("text", {nullable: false}) - hash!: string - - @Column_("text", {nullable: false}) - parentHash!: string - - @Column_("text", {nullable: false}) - stateRoot!: string - - @Column_("text", {nullable: false}) - extrinsicsRoot!: string - - @Column_("text", {nullable: false}) - specId!: string - - @Column_("text", {nullable: false}) - specName!: string - - @Index_() - @Column_("int4", {nullable: false}) - specVersion!: number - - @Column_("text", {nullable: false}) - implName!: string - - @Column_("int4", {nullable: false}) - implVersion!: number - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("bytea", {nullable: true}) - validator!: Uint8Array | undefined | null - - @Column_("int4", {nullable: false}) - extrinsicsCount!: number - - @Column_("int4", {nullable: false}) - callsCount!: number - - @Column_("int4", {nullable: false}) - eventsCount!: number - - @Column_("int4", {nullable: false}) - logsCount!: number - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - spacePledged!: bigint - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - blockchainSize!: bigint - - @Column_("text", {nullable: true}) - author!: string | undefined | null - - @OneToMany_(() => Extrinsic, e => e.block) - extrinsics!: Extrinsic[] - - @OneToMany_(() => Event, e => e.block) - events!: Event[] - - @OneToMany_(() => Call, e => e.block) - calls!: Call[] - - @OneToMany_(() => Log, e => e.block) - logs!: Log[] -} diff --git a/indexers/general-squid/src/model/generated/call.model.ts b/indexers/general-squid/src/model/generated/call.model.ts deleted file mode 100644 index 44cc45e5c..000000000 --- a/indexers/general-squid/src/model/generated/call.model.ts +++ /dev/null @@ -1,67 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, ManyToOne as ManyToOne_, OneToMany as OneToMany_} from "typeorm" -import {Block} from "./block.model" -import {Extrinsic} from "./extrinsic.model" -import {Event} from "./event.model" - -@Index_(["id", "pallet", "name"], {unique: false}) -@Entity_() -export class Call { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @ManyToOne_(() => Block, {nullable: true}) - block!: Block - - @Index_() - @ManyToOne_(() => Extrinsic, {nullable: true}) - extrinsic!: Extrinsic - - @Index_() - @ManyToOne_(() => Call, {nullable: true}) - parent!: Call | undefined | null - - @Column_("int4", {array: true, nullable: false}) - address!: (number)[] - - @Index_() - @Column_("bool", {nullable: false}) - success!: boolean - - @Column_("jsonb", {nullable: true}) - error!: unknown | undefined | null - - @Index_() - @Column_("text", {nullable: false}) - pallet!: string - - @Column_("text", {nullable: false}) - name!: string - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("text", {nullable: true}) - signer!: string | undefined | null - - @Column_("jsonb", {nullable: true}) - args!: unknown | undefined | null - - @Column_("text", {array: true, nullable: true}) - argsStr!: (string | undefined | null)[] | undefined | null - - @OneToMany_(() => Call, e => e.parent) - subcalls!: Call[] - - @OneToMany_(() => Event, e => e.call) - events!: Event[] - - @Column_("int4", {nullable: true}) - pos!: number | undefined | null -} diff --git a/indexers/general-squid/src/model/generated/event.model.ts b/indexers/general-squid/src/model/generated/event.model.ts deleted file mode 100644 index 28b65cc30..000000000 --- a/indexers/general-squid/src/model/generated/event.model.ts +++ /dev/null @@ -1,54 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, ManyToOne as ManyToOne_} from "typeorm" -import {Block} from "./block.model" -import {Extrinsic} from "./extrinsic.model" -import {Call} from "./call.model" - -@Index_(["id", "pallet", "name"], {unique: false}) -@Entity_() -export class Event { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @ManyToOne_(() => Block, {nullable: true}) - block!: Block | undefined | null - - @Index_() - @ManyToOne_(() => Extrinsic, {nullable: true}) - extrinsic!: Extrinsic | undefined | null - - @Index_() - @ManyToOne_(() => Call, {nullable: true}) - call!: Call | undefined | null - - @Column_("int4", {nullable: false}) - index!: number - - @Column_("text", {nullable: false}) - phase!: string - - @Index_() - @Column_("text", {nullable: false}) - pallet!: string - - @Index_() - @Column_("text", {nullable: false}) - name!: string - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Column_("int4", {nullable: true}) - pos!: number | undefined | null - - @Column_("jsonb", {nullable: true}) - args!: unknown | undefined | null - - @Column_("text", {array: true, nullable: true}) - argsStr!: (string | undefined | null)[] | undefined | null -} diff --git a/indexers/general-squid/src/model/generated/eventModuleName.model.ts b/indexers/general-squid/src/model/generated/eventModuleName.model.ts deleted file mode 100644 index 3b65717e0..000000000 --- a/indexers/general-squid/src/model/generated/eventModuleName.model.ts +++ /dev/null @@ -1,15 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_} from "typeorm" - -@Entity_() -export class EventModuleName { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("text", {nullable: false}) - name!: string -} diff --git a/indexers/general-squid/src/model/generated/extrinsic.model.ts b/indexers/general-squid/src/model/generated/extrinsic.model.ts deleted file mode 100644 index 2f1101bd2..000000000 --- a/indexers/general-squid/src/model/generated/extrinsic.model.ts +++ /dev/null @@ -1,70 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, ManyToOne as ManyToOne_, Index as Index_, OneToMany as OneToMany_} from "typeorm" -import * as marshal from "./marshal" -import {Block} from "./block.model" -import {Call} from "./call.model" -import {ExtrinsicSignature} from "./_extrinsicSignature" -import {Event} from "./event.model" - -@Entity_() -export class Extrinsic { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @ManyToOne_(() => Block, {nullable: true}) - block!: Block - - @Index_() - @ManyToOne_(() => Call, {nullable: true}) - call!: Call | undefined | null - - @Column_("int4", {nullable: false}) - index!: number - - @Column_("int4", {nullable: false}) - version!: number - - @Column_("jsonb", {transformer: {to: obj => obj == null ? undefined : obj.toJSON(), from: obj => obj == null ? undefined : new ExtrinsicSignature(undefined, obj)}, nullable: true}) - signature!: ExtrinsicSignature | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - tip!: bigint | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - fee!: bigint | undefined | null - - @Index_() - @Column_("bool", {nullable: false}) - success!: boolean - - @Column_("jsonb", {nullable: true}) - error!: unknown | undefined | null - - @Index_() - @Column_("text", {nullable: false}) - hash!: string - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("text", {nullable: false}) - name!: string - - @Column_("text", {nullable: true}) - signer!: string | undefined | null - - @Column_("jsonb", {nullable: true}) - args!: unknown | undefined | null - - @OneToMany_(() => Event, e => e.extrinsic) - events!: Event[] - - @OneToMany_(() => Call, e => e.extrinsic) - calls!: Call[] -} diff --git a/indexers/general-squid/src/model/generated/extrinsicModuleName.model.ts b/indexers/general-squid/src/model/generated/extrinsicModuleName.model.ts deleted file mode 100644 index 36b4eaef2..000000000 --- a/indexers/general-squid/src/model/generated/extrinsicModuleName.model.ts +++ /dev/null @@ -1,15 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_} from "typeorm" - -@Entity_() -export class ExtrinsicModuleName { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("text", {nullable: false}) - name!: string -} diff --git a/indexers/general-squid/src/model/generated/index.ts b/indexers/general-squid/src/model/generated/index.ts deleted file mode 100644 index 5fb2077f8..000000000 --- a/indexers/general-squid/src/model/generated/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from "./block.model" -export * from "./extrinsicModuleName.model" -export * from "./extrinsic.model" -export * from "./_extrinsicSignature" -export * from "./eventModuleName.model" -export * from "./event.model" -export * from "./call.model" -export * from "./log.model" -export * from "./itemsCounter.model" -export * from "./_itemType" -export * from "./_counterLevel" diff --git a/indexers/general-squid/src/model/generated/itemsCounter.model.ts b/indexers/general-squid/src/model/generated/itemsCounter.model.ts deleted file mode 100644 index 7196bbdd3..000000000 --- a/indexers/general-squid/src/model/generated/itemsCounter.model.ts +++ /dev/null @@ -1,25 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_} from "typeorm" -import {ItemType} from "./_itemType" -import {CounterLevel} from "./_counterLevel" - -@Entity_() -export class ItemsCounter { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("varchar", {length: 10, nullable: false}) - type!: ItemType - - @Index_() - @Column_("varchar", {length: 6, nullable: false}) - level!: CounterLevel - - @Index_() - @Column_("int4", {nullable: false}) - total!: number -} diff --git a/indexers/general-squid/src/model/generated/log.model.ts b/indexers/general-squid/src/model/generated/log.model.ts deleted file mode 100644 index 3cbbc3705..000000000 --- a/indexers/general-squid/src/model/generated/log.model.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, ManyToOne as ManyToOne_} from "typeorm" -import {Block} from "./block.model" - -@Entity_() -export class Log { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("text", {nullable: false}) - kind!: string - - @Column_("jsonb", {nullable: true}) - value!: unknown | undefined | null - - @Index_() - @ManyToOne_(() => Block, {nullable: true}) - block!: Block -} diff --git a/indexers/general-squid/src/model/generated/marshal.ts b/indexers/general-squid/src/model/generated/marshal.ts deleted file mode 100644 index eaf8d36a8..000000000 --- a/indexers/general-squid/src/model/generated/marshal.ts +++ /dev/null @@ -1,179 +0,0 @@ -import assert from 'assert' - - -export interface Marshal { - fromJSON(value: unknown): T - toJSON(value: T): S -} - - -export const string: Marshal = { - fromJSON(value: unknown): string { - assert(typeof value === 'string', 'invalid String') - return value - }, - toJSON(value) { - return value - } -} - - -export const id = string - - -export const int: Marshal = { - fromJSON(value: unknown): number { - assert(Number.isInteger(value), 'invalid Int') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const float: Marshal = { - fromJSON(value: unknown): number { - assert(typeof value === 'number', 'invalid Float') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const boolean: Marshal = { - fromJSON(value: unknown): boolean { - assert(typeof value === 'boolean', 'invalid Boolean') - return value - }, - toJSON(value: boolean): boolean { - return value - } -} - - -export const bigint: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigInt') - return BigInt(value) - }, - toJSON(value: bigint): string { - return value.toString() - } -} - - -export const bigdecimal: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigDecimal') - return decimal.BigDecimal(value) - }, - toJSON(value: any): string { - return value.toString() - } -} - - -// credit - https://github.com/Urigo/graphql-scalars/blob/91b4ea8df891be8af7904cf84751930cc0c6613d/src/scalars/iso-date/validator.ts#L122 -const RFC_3339_REGEX = - /^(\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60))(\.\d{1,})?([Z])$/ - - -function isIsoDateTimeString(s: string): boolean { - return RFC_3339_REGEX.test(s) -} - - -export const datetime: Marshal = { - fromJSON(value: unknown): Date { - assert(typeof value === 'string', 'invalid DateTime') - assert(isIsoDateTimeString(value), 'invalid DateTime') - return new Date(value) - }, - toJSON(value: Date): string { - return value.toISOString() - } -} - - -export const bytes: Marshal = { - fromJSON(value: unknown): Buffer { - assert(typeof value === 'string', 'invalid Bytes') - assert(value.length % 2 === 0, 'invalid Bytes') - assert(/^0x[0-9a-f]+$/i.test(value), 'invalid Bytes') - return Buffer.from(value.slice(2), 'hex') - }, - toJSON(value: Uint8Array): string { - if (Buffer.isBuffer(value)) { - return '0x' + value.toString('hex') - } else { - return '0x' + Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString('hex') - } - } -} - - -export function fromList(list: unknown, f: (val: unknown) => T): T[] { - assert(Array.isArray(list)) - return list.map((val) => f(val)) -} - - -export function nonNull(val: T | undefined | null): T { - assert(val != null, 'non-nullable value is null') - return val -} - - -export const bigintTransformer = { - to(x?: bigint) { - return x?.toString() - }, - from(s?: string): bigint | undefined { - return s == null ? undefined : BigInt(s) - } -} - - -export const floatTransformer = { - to(x?: number) { - return x?.toString() - }, - from(s?: string): number | undefined { - return s == null ? undefined : Number(s) - } -} - - -export const bigdecimalTransformer = { - to(x?: any) { - return x?.toString() - }, - from(s?: any): any | undefined { - return s == null ? undefined : decimal.BigDecimal(s) - } -} - - -export function enumFromJson(json: unknown, enumObject: E): E[keyof E] { - assert(typeof json == 'string', 'invalid enum value') - let val = (enumObject as any)[json] - assert(typeof val == 'string', `invalid enum value`) - return val as any -} - - -const decimal = { - get BigDecimal(): any { - throw new Error('Package `@subsquid/big-decimal` is not installed') - } -} - - -try { - Object.defineProperty(decimal, "BigDecimal", { - value: require('@subsquid/big-decimal').BigDecimal - }) -} catch (e) {} diff --git a/indexers/general-squid/src/model/index.ts b/indexers/general-squid/src/model/index.ts deleted file mode 100644 index 73bfb2881..000000000 --- a/indexers/general-squid/src/model/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./generated" diff --git a/indexers/general-squid/src/processor.ts b/indexers/general-squid/src/processor.ts deleted file mode 100644 index 885eb22ff..000000000 --- a/indexers/general-squid/src/processor.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { - Block as Block_, - BlockHeader as BlockHeader_, - Call as Call_, - DataHandlerContext, - Event as Event_, - Extrinsic as Extrinsic_, - SubstrateBatchProcessor, - SubstrateBatchProcessorFields, -} from "@subsquid/substrate-processor"; -import { assertNotNull } from "@subsquid/util-internal"; - -export const processor = new SubstrateBatchProcessor() - .setRpcEndpoint({ - url: assertNotNull(process.env.RPC_ENDPOINT), - rateLimit: 10, - }) - .setBlockRange({ from: 0 }) - .setFields({ - block: { - timestamp: true, - digest: true, - extrinsicsRoot: true, - stateRoot: true, - validator: true, - author: true, - }, - call: { - name: true, - args: true, - origin: true, - success: true, - error: true, - }, - event: { - name: true, - args: true, - phase: true, - }, - extrinsic: { - hash: true, - success: true, - error: true, - fee: true, - signature: true, - tip: true, - version: true, - }, - }) - .addCall({ - extrinsic: true, - stack: true, - }) - .addEvent({ - call: true, - extrinsic: true, - }) - .includeAllBlocks(); - -export type Fields = SubstrateBatchProcessorFields; -export type Call = Call_; -export type Event = Event_; -export type Extrinsic = Extrinsic_; -export type Block = Block_; -export type BlockHeader = BlockHeader_; -export type ProcessorContext = DataHandlerContext; diff --git a/indexers/general-squid/src/types/balances/calls.ts b/indexers/general-squid/src/types/balances/calls.ts deleted file mode 100644 index 03fbec1ea..000000000 --- a/indexers/general-squid/src/types/balances/calls.ts +++ /dev/null @@ -1,119 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v5 from '../v5' - -export const transferAllowDeath = { - name: 'Balances.transfer_allow_death', - /** - * See [`Pallet::transfer_allow_death`]. - */ - v0: new CallType( - 'Balances.transfer_allow_death', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const forceTransfer = { - name: 'Balances.force_transfer', - /** - * See [`Pallet::force_transfer`]. - */ - v0: new CallType( - 'Balances.force_transfer', - sts.struct({ - source: v0.MultiAddress, - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferKeepAlive = { - name: 'Balances.transfer_keep_alive', - /** - * See [`Pallet::transfer_keep_alive`]. - */ - v0: new CallType( - 'Balances.transfer_keep_alive', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferAll = { - name: 'Balances.transfer_all', - /** - * See [`Pallet::transfer_all`]. - */ - v0: new CallType( - 'Balances.transfer_all', - sts.struct({ - dest: v0.MultiAddress, - keepAlive: sts.boolean(), - }) - ), -} - -export const forceUnreserve = { - name: 'Balances.force_unreserve', - /** - * See [`Pallet::force_unreserve`]. - */ - v0: new CallType( - 'Balances.force_unreserve', - sts.struct({ - who: v0.MultiAddress, - amount: sts.bigint(), - }) - ), -} - -export const upgradeAccounts = { - name: 'Balances.upgrade_accounts', - /** - * See [`Pallet::upgrade_accounts`]. - */ - v0: new CallType( - 'Balances.upgrade_accounts', - sts.struct({ - who: sts.array(() => v0.AccountId32), - }) - ), -} - -export const forceSetBalance = { - name: 'Balances.force_set_balance', - /** - * See [`Pallet::force_set_balance`]. - */ - v0: new CallType( - 'Balances.force_set_balance', - sts.struct({ - who: v0.MultiAddress, - newFree: sts.bigint(), - }) - ), -} - -export const forceAdjustTotalIssuance = { - name: 'Balances.force_adjust_total_issuance', - /** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - */ - v5: new CallType( - 'Balances.force_adjust_total_issuance', - sts.struct({ - direction: v5.AdjustmentDirection, - delta: sts.bigint(), - }) - ), -} diff --git a/indexers/general-squid/src/types/balances/constants.ts b/indexers/general-squid/src/types/balances/constants.ts deleted file mode 100644 index 5cab2c7e3..000000000 --- a/indexers/general-squid/src/types/balances/constants.ts +++ /dev/null @@ -1,59 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const existentialDeposit = { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - */ - v0: new ConstantType( - 'Balances.ExistentialDeposit', - sts.bigint() - ), -} - -export const maxLocks = { - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - */ - v0: new ConstantType( - 'Balances.MaxLocks', - sts.number() - ), -} - -export const maxReserves = { - /** - * The maximum number of named reserves that can exist on an account. - */ - v0: new ConstantType( - 'Balances.MaxReserves', - sts.number() - ), -} - -export const maxHolds = { - /** - * The maximum number of holds that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxHolds', - sts.number() - ), -} - -export const maxFreezes = { - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxFreezes', - sts.number() - ), -} diff --git a/indexers/general-squid/src/types/balances/events.ts b/indexers/general-squid/src/types/balances/events.ts deleted file mode 100644 index fda7f6e59..000000000 --- a/indexers/general-squid/src/types/balances/events.ts +++ /dev/null @@ -1,312 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const endowed = { - name: 'Balances.Endowed', - /** - * An account was created with some free balance. - */ - v0: new EventType( - 'Balances.Endowed', - sts.struct({ - account: v0.AccountId32, - freeBalance: sts.bigint(), - }) - ), -} - -export const dustLost = { - name: 'Balances.DustLost', - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ - v0: new EventType( - 'Balances.DustLost', - sts.struct({ - account: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const transfer = { - name: 'Balances.Transfer', - /** - * Transfer succeeded. - */ - v0: new EventType( - 'Balances.Transfer', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const balanceSet = { - name: 'Balances.BalanceSet', - /** - * A balance was set by root. - */ - v0: new EventType( - 'Balances.BalanceSet', - sts.struct({ - who: v0.AccountId32, - free: sts.bigint(), - }) - ), -} - -export const reserved = { - name: 'Balances.Reserved', - /** - * Some balance was reserved (moved from free to reserved). - */ - v0: new EventType( - 'Balances.Reserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unreserved = { - name: 'Balances.Unreserved', - /** - * Some balance was unreserved (moved from reserved to free). - */ - v0: new EventType( - 'Balances.Unreserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const reserveRepatriated = { - name: 'Balances.ReserveRepatriated', - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ - v0: new EventType( - 'Balances.ReserveRepatriated', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - destinationStatus: v0.BalanceStatus, - }) - ), -} - -export const deposit = { - name: 'Balances.Deposit', - /** - * Some amount was deposited (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Deposit', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const withdraw = { - name: 'Balances.Withdraw', - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Withdraw', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const slashed = { - name: 'Balances.Slashed', - /** - * Some amount was removed from the account (e.g. for misbehavior). - */ - v0: new EventType( - 'Balances.Slashed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const minted = { - name: 'Balances.Minted', - /** - * Some amount was minted into an account. - */ - v0: new EventType( - 'Balances.Minted', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const burned = { - name: 'Balances.Burned', - /** - * Some amount was burned from an account. - */ - v0: new EventType( - 'Balances.Burned', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const suspended = { - name: 'Balances.Suspended', - /** - * Some amount was suspended from an account (it can be restored later). - */ - v0: new EventType( - 'Balances.Suspended', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const restored = { - name: 'Balances.Restored', - /** - * Some amount was restored into an account. - */ - v0: new EventType( - 'Balances.Restored', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const upgraded = { - name: 'Balances.Upgraded', - /** - * An account was upgraded. - */ - v0: new EventType( - 'Balances.Upgraded', - sts.struct({ - who: v0.AccountId32, - }) - ), -} - -export const issued = { - name: 'Balances.Issued', - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ - v0: new EventType( - 'Balances.Issued', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const rescinded = { - name: 'Balances.Rescinded', - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ - v0: new EventType( - 'Balances.Rescinded', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const locked = { - name: 'Balances.Locked', - /** - * Some balance was locked. - */ - v0: new EventType( - 'Balances.Locked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unlocked = { - name: 'Balances.Unlocked', - /** - * Some balance was unlocked. - */ - v0: new EventType( - 'Balances.Unlocked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const frozen = { - name: 'Balances.Frozen', - /** - * Some balance was frozen. - */ - v0: new EventType( - 'Balances.Frozen', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const thawed = { - name: 'Balances.Thawed', - /** - * Some balance was thawed. - */ - v0: new EventType( - 'Balances.Thawed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const totalIssuanceForced = { - name: 'Balances.TotalIssuanceForced', - /** - * The `TotalIssuance` was forcefully changed. - */ - v5: new EventType( - 'Balances.TotalIssuanceForced', - sts.struct({ - old: sts.bigint(), - new: sts.bigint(), - }) - ), -} diff --git a/indexers/general-squid/src/types/balances/storage.ts b/indexers/general-squid/src/types/balances/storage.ts deleted file mode 100644 index 5f4a19212..000000000 --- a/indexers/general-squid/src/types/balances/storage.ts +++ /dev/null @@ -1,253 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const totalIssuance = { - /** - * The total units issued in the system. - */ - v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, -} - -/** - * The total units issued in the system. - */ -export interface TotalIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const inactiveIssuance = { - /** - * The total units of outstanding deactivated balance in the system. - */ - v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, -} - -/** - * The total units of outstanding deactivated balance in the system. - */ -export interface InactiveIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const account = { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ - v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, -} - -/** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountData - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> -} - -export const locks = { - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ - v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, -} - -/** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ -export interface LocksV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BalanceLock[] - get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> -} - -export const reserves = { - /** - * Named reserves on some account balances. - */ - v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, -} - -/** - * Named reserves on some account balances. - */ -export interface ReservesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.ReserveData[] - get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> -} - -export const holds = { - /** - * Holds on account balances. - */ - v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, - /** - * Holds on account balances. - */ - v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, - /** - * Holds on account balances. - */ - v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, -} - -/** - * Holds on account balances. - */ -export interface HoldsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.IdAmount[] - get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.IdAmount[] - get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> - getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.IdAmount[] - get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> - getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> -} - -export const freezes = { - /** - * Freeze locks on account balances. - */ - v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, -} - -/** - * Freeze locks on account balances. - */ -export interface FreezesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Type_152[] - get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> -} diff --git a/indexers/general-squid/src/types/calls.ts b/indexers/general-squid/src/types/calls.ts deleted file mode 100644 index f86459d11..000000000 --- a/indexers/general-squid/src/types/calls.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as system from './system/calls' -export * as timestamp from './timestamp/calls' -export * as subspace from './subspace/calls' -export * as balances from './balances/calls' -export * as utility from './utility/calls' -export * as domains from './domains/calls' -export * as messenger from './messenger/calls' -export * as rewards from './rewards/calls' diff --git a/indexers/general-squid/src/types/constants.ts b/indexers/general-squid/src/types/constants.ts deleted file mode 100644 index 1a3e8c237..000000000 --- a/indexers/general-squid/src/types/constants.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * as system from './system/constants' -export * as timestamp from './timestamp/constants' -export * as subspace from './subspace/constants' -export * as rewards from './rewards/constants' -export * as balances from './balances/constants' -export * as transactionFees from './transaction-fees/constants' -export * as utility from './utility/constants' -export * as domains from './domains/constants' -export * as messenger from './messenger/constants' diff --git a/indexers/general-squid/src/types/domains/calls.ts b/indexers/general-squid/src/types/domains/calls.ts deleted file mode 100644 index 3ecf1398b..000000000 --- a/indexers/general-squid/src/types/domains/calls.ts +++ /dev/null @@ -1,278 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), - v5: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v5.Bundle, - }) - ), -} - -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), - v5: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v5.FraudProof, - }) - ), -} - -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), - v5: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v5.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), - v5: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v5.DomainId, - amount: sts.bigint(), - config: v5.OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }) - ), -} - -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), -} - -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), -} - -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), -} - -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), -} - -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), -} - -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const unlockNominator = { - name: 'Domains.unlock_nominator', - /** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ - v5: new CallType( - 'Domains.unlock_nominator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const setPermissionedActionAllowedBy = { - name: 'Domains.set_permissioned_action_allowed_by', - /** - * Update permissioned action allowed by storage by Sudo. - */ - v5: new CallType( - 'Domains.set_permissioned_action_allowed_by', - sts.struct({ - permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, - }) - ), -} diff --git a/indexers/general-squid/src/types/domains/constants.ts b/indexers/general-squid/src/types/domains/constants.ts deleted file mode 100644 index a26b47666..000000000 --- a/indexers/general-squid/src/types/domains/constants.ts +++ /dev/null @@ -1,213 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), -} diff --git a/indexers/general-squid/src/types/domains/events.ts b/indexers/general-squid/src/types/domains/events.ts deleted file mode 100644 index d6551e7d0..000000000 --- a/indexers/general-squid/src/types/domains/events.ts +++ /dev/null @@ -1,250 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), - v5: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v5.RuntimeType, - }) - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), - v5: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v5.SlashedReason, - }) - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/general-squid/src/types/domains/storage.ts b/indexers/general-squid/src/types/domains/storage.ts deleted file mode 100644 index 495ae0e03..000000000 --- a/indexers/general-squid/src/types/domains/storage.ts +++ /dev/null @@ -1,1226 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, -} - -/** - * Bundles submitted successfully in current block. - */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, -} - -/** - * Fraud proofs submitted successfully in current block. - */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, -} - -/** - * Stores the next runtime id. - */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, -} - -/** - * Stores the next evm chain id. - */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, - v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export interface RuntimeRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, -} - -/** - * Indexes operator signing key against OperatorId. - */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, -} - -/** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, -} - -/** - * Share price for the operator pool at the end of Domain epoch. - */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, -} - -/** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, -} - -/** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, -} - -/** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, -} - -/** - * Stores the next domain id. - */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, - /** - * The domain registry - */ - v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, -} - -/** - * The domain registry - */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> - getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, -} - -/** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> - getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, -} - -/** - * The head receipt number of each domain - */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, -} - -/** - * The latest confirmed block number of each domain. - */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, -} - -/** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, -} - -/** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, -} - -/** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, -} - -/** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, -} - -/** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, -} - -/** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, -} - -/** - * Storage to hold all the domain's latest confirmed block. - */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, -} - -/** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} - -export const operatorHighestSlot = { - /** - * The highest slot of the bundle submitted by an operator - */ - v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, -} - -/** - * The highest slot of the bundle submitted by an operator - */ -export interface OperatorHighestSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: bigint): Promise<(bigint | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> -} - -export const operatorBundleSlot = { - /** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ - v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, -} - -/** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ -export interface OperatorBundleSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint[] - get(block: Block, key: bigint): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> -} - -export const permissionedActionAllowedBy = { - /** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ - v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, -} - -/** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ -export interface PermissionedActionAllowedByV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> -} - -export const accumulatedTreasuryFunds = { - /** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ - v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, -} - -/** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ -export interface AccumulatedTreasuryFundsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const domainRuntimeUpgradeRecords = { - /** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ - v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, -} - -/** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ -export interface DomainRuntimeUpgradeRecordsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] - get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> - getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> -} - -export const domainRuntimeUpgrades = { - /** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ - v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, -} - -/** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ -export interface DomainRuntimeUpgradesV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number[] - get(block: Block): Promise<(number[] | undefined)> -} diff --git a/indexers/general-squid/src/types/events.ts b/indexers/general-squid/src/types/events.ts deleted file mode 100644 index 8e7e8d88a..000000000 --- a/indexers/general-squid/src/types/events.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as system from './system/events' -export * as subspace from './subspace/events' -export * as rewards from './rewards/events' -export * as balances from './balances/events' -export * as transactionFees from './transaction-fees/events' -export * as utility from './utility/events' -export * as domains from './domains/events' -export * as messenger from './messenger/events' diff --git a/indexers/general-squid/src/types/index.ts b/indexers/general-squid/src/types/index.ts deleted file mode 100644 index a9093352d..000000000 --- a/indexers/general-squid/src/types/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as v0 from './v0' -export * as v5 from './v5' -export * as v1 from './v1' -export * as v3 from './v3' -export * as events from './events' -export * as calls from './calls' -export * as constants from './constants' -export * as storage from './storage' diff --git a/indexers/general-squid/src/types/messenger/calls.ts b/indexers/general-squid/src/types/messenger/calls.ts deleted file mode 100644 index 03c0f7588..000000000 --- a/indexers/general-squid/src/types/messenger/calls.ts +++ /dev/null @@ -1,146 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const initiateChannel = { - name: 'Messenger.initiate_channel', - /** - * See [`Pallet::initiate_channel`]. - */ - v0: new CallType( - 'Messenger.initiate_channel', - sts.struct({ - dstChainId: v0.ChainId, - params: v0.InitiateChannelParams, - }) - ), - /** - * A new Channel is initiated with a foreign chain. - * Next Channel ID is used to assign the new channel. - * Channel is set to initiated and do not accept or receive any messages. - */ - v5: new CallType( - 'Messenger.initiate_channel', - sts.struct({ - dstChainId: v5.ChainId, - params: v5.InitiateChannelParams, - }) - ), -} - -export const closeChannel = { - name: 'Messenger.close_channel', - /** - * See [`Pallet::close_channel`]. - */ - v0: new CallType( - 'Messenger.close_channel', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - }) - ), -} - -export const relayMessage = { - name: 'Messenger.relay_message', - /** - * See [`Pallet::relay_message`]. - */ - v0: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message`]. - */ - v3: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), - /** - * Receives an Inbox message that needs to be validated and processed. - */ - v5: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v5.CrossDomainMessage, - }) - ), -} - -export const relayMessageResponse = { - name: 'Messenger.relay_message_response', - /** - * See [`Pallet::relay_message_response`]. - */ - v0: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message_response`]. - */ - v3: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), - /** - * Receives a response from the dst_chain for a message in Outbox. - */ - v5: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v5.CrossDomainMessage, - }) - ), -} - -export const updateConsensusChainAllowlist = { - name: 'Messenger.update_consensus_chain_allowlist', - /** - * See [`Pallet::update_consensus_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_consensus_chain_allowlist', - sts.struct({ - update: v3.ChainAllowlistUpdate, - }) - ), -} - -export const initiateDomainUpdateChainAllowlist = { - name: 'Messenger.initiate_domain_update_chain_allowlist', - /** - * See [`Pallet::initiate_domain_update_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.initiate_domain_update_chain_allowlist', - sts.struct({ - domainId: v3.DomainId, - update: v3.ChainAllowlistUpdate, - }) - ), -} - -export const updateDomainAllowlist = { - name: 'Messenger.update_domain_allowlist', - /** - * See [`Pallet::update_domain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_domain_allowlist', - sts.struct({ - updates: v3.DomainAllowlistUpdates, - }) - ), -} diff --git a/indexers/general-squid/src/types/messenger/constants.ts b/indexers/general-squid/src/types/messenger/constants.ts deleted file mode 100644 index fecb47fda..000000000 --- a/indexers/general-squid/src/types/messenger/constants.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v5 from '../v5' - -export const channelReserveFee = { - /** - * Channel reserve fee to open a channel. - */ - v3: new ConstantType( - 'Messenger.ChannelReserveFee', - sts.bigint() - ), -} - -export const channelInitReservePortion = { - /** - * Portion of Channel reserve taken by the protocol - * if the channel is in init state and is requested to be closed. - */ - v5: new ConstantType( - 'Messenger.ChannelInitReservePortion', - v5.Perbill - ), -} diff --git a/indexers/general-squid/src/types/messenger/events.ts b/indexers/general-squid/src/types/messenger/events.ts deleted file mode 100644 index c36e8bf2b..000000000 --- a/indexers/general-squid/src/types/messenger/events.ts +++ /dev/null @@ -1,150 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const channelInitiated = { - name: 'Messenger.ChannelInitiated', - /** - * Emits when a channel between two chains is initiated. - */ - v0: new EventType( - 'Messenger.ChannelInitiated', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const channelClosed = { - name: 'Messenger.ChannelClosed', - /** - * Emits when a channel between two chains is closed. - */ - v0: new EventType( - 'Messenger.ChannelClosed', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const channelOpen = { - name: 'Messenger.ChannelOpen', - /** - * Emits when a channel between two chain is open. - */ - v0: new EventType( - 'Messenger.ChannelOpen', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const outboxMessage = { - name: 'Messenger.OutboxMessage', - /** - * Emits when a new message is added to the outbox. - */ - v0: new EventType( - 'Messenger.OutboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const outboxMessageResponse = { - name: 'Messenger.OutboxMessageResponse', - /** - * Emits when a message response is available for Outbox message. - */ - v0: new EventType( - 'Messenger.OutboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const outboxMessageResult = { - name: 'Messenger.OutboxMessageResult', - /** - * Emits outbox message result. - */ - v0: new EventType( - 'Messenger.OutboxMessageResult', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: v0.OutboxMessageResult, - }) - ), -} - -export const inboxMessage = { - name: 'Messenger.InboxMessage', - /** - * Emits when a new inbox message is validated and added to Inbox. - */ - v0: new EventType( - 'Messenger.InboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const inboxMessageResponse = { - name: 'Messenger.InboxMessageResponse', - /** - * Emits when a message response is available for Inbox message. - */ - v0: new EventType( - 'Messenger.InboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} diff --git a/indexers/general-squid/src/types/messenger/storage.ts b/indexers/general-squid/src/types/messenger/storage.ts deleted file mode 100644 index cb857a76e..000000000 --- a/indexers/general-squid/src/types/messenger/storage.ts +++ /dev/null @@ -1,332 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const nextChannelId = { - /** - * Stores the next channel id for a foreign chain. - */ - v0: new StorageType('Messenger.NextChannelId', 'Default', [v0.ChainId], sts.bigint()) as NextChannelIdV0, -} - -/** - * Stores the next channel id for a foreign chain. - */ -export interface NextChannelIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: v0.ChainId): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.ChainId[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.ChainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.ChainId): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> -} - -export const channels = { - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v0: new StorageType('Messenger.Channels', 'Optional', [v0.ChainId, sts.bigint()], v0.Channel) as ChannelsV0, - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v3: new StorageType('Messenger.Channels', 'Optional', [v3.ChainId, sts.bigint()], v3.Channel) as ChannelsV3, -} - -/** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ -export interface ChannelsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.ChainId, key2: bigint): Promise<(v0.Channel | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint][]): Promise<(v0.Channel | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId, key2: bigint): Promise<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[v0.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId, key2: bigint): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> -} - -/** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ -export interface ChannelsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v3.ChainId, key2: bigint): Promise<(v3.Channel | undefined)> - getMany(block: Block, keys: [v3.ChainId, bigint][]): Promise<(v3.Channel | undefined)[]> - getKeys(block: Block): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId, key2: bigint): Promise<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[v3.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId, key2: bigint): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> -} - -export const inbox = { - /** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ - v0: new StorageType('Messenger.Inbox', 'Optional', [], v0.Message) as InboxV0, -} - -/** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ -export interface InboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> -} - -export const inboxFee = { - /** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ - v0: new StorageType('Messenger.InboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as InboxFeeV0, -} - -/** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ -export interface InboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> -} - -export const outboxFee = { - /** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ - v0: new StorageType('Messenger.OutboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as OutboxFeeV0, -} - -/** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ -export interface OutboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> -} - -export const inboxResponses = { - /** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ - v0: new StorageType('Messenger.InboxResponses', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as InboxResponsesV0, -} - -/** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ -export interface InboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> -} - -export const counterForInboxResponses = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForInboxResponses', 'Default', [], sts.number()) as CounterForInboxResponsesV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForInboxResponsesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const outbox = { - /** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ - v0: new StorageType('Messenger.Outbox', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as OutboxV0, -} - -/** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ -export interface OutboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> -} - -export const counterForOutbox = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForOutbox', 'Default', [], sts.number()) as CounterForOutboxV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForOutboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const outboxResponses = { - /** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ - v0: new StorageType('Messenger.OutboxResponses', 'Optional', [], v0.Message) as OutboxResponsesV0, -} - -/** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ -export interface OutboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> -} - -export const blockMessages = { - /** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ - v0: new StorageType('Messenger.BlockMessages', 'Optional', [], v0.BlockMessages) as BlockMessagesV0, -} - -/** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ -export interface BlockMessagesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.BlockMessages | undefined)> -} - -export const chainAllowlist = { - /** - * An allowlist of chains that can open channel with this chain. - */ - v3: new StorageType('Messenger.ChainAllowlist', 'Default', [], sts.array(() => v3.ChainId)) as ChainAllowlistV3, -} - -/** - * An allowlist of chains that can open channel with this chain. - */ -export interface ChainAllowlistV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.ChainId[] - get(block: Block): Promise<(v3.ChainId[] | undefined)> -} - -export const domainChainAllowlistUpdate = { - /** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ - v3: new StorageType('Messenger.DomainChainAllowlistUpdate', 'Optional', [v3.DomainId], v3.DomainAllowlistUpdates) as DomainChainAllowlistUpdateV3, -} - -/** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ -export interface DomainChainAllowlistUpdateV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v3.DomainId): Promise<(v3.DomainAllowlistUpdates | undefined)> - getMany(block: Block, keys: v3.DomainId[]): Promise<(v3.DomainAllowlistUpdates | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairs(block: Block, key: v3.DomainId): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> -} - -export const messageWeightTags = { - /** - * Storage to store the weight tags for all the outbox and inbox response messages. - */ - v5: new StorageType('Messenger.MessageWeightTags', 'Optional', [], v5.MessageWeightTags) as MessageWeightTagsV5, -} - -/** - * Storage to store the weight tags for all the outbox and inbox response messages. - */ -export interface MessageWeightTagsV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.MessageWeightTags | undefined)> -} diff --git a/indexers/general-squid/src/types/rewards/calls.ts b/indexers/general-squid/src/types/rewards/calls.ts deleted file mode 100644 index b8486afff..000000000 --- a/indexers/general-squid/src/types/rewards/calls.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const updateIssuanceParams = { - name: 'Rewards.update_issuance_params', - /** - * See [`Pallet::update_issuance_params`]. - */ - v3: new CallType( - 'Rewards.update_issuance_params', - sts.struct({ - proposerSubsidyPoints: sts.array(() => v3.RewardPoint), - voterSubsidyPoints: sts.array(() => v3.RewardPoint), - }) - ), -} diff --git a/indexers/general-squid/src/types/rewards/constants.ts b/indexers/general-squid/src/types/rewards/constants.ts deleted file mode 100644 index e1004ecc1..000000000 --- a/indexers/general-squid/src/types/rewards/constants.ts +++ /dev/null @@ -1,61 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const blockReward = { - /** - * Fixed reward for block producer. - */ - v0: new ConstantType( - 'Rewards.BlockReward', - sts.bigint() - ), -} - -export const voteReward = { - /** - * Fixed reward for voter. - */ - v0: new ConstantType( - 'Rewards.VoteReward', - sts.bigint() - ), -} - -export const avgBlockspaceUsageNumBlocks = { - /** - * Number of blocks over which to compute average blockspace usage - */ - v3: new ConstantType( - 'Rewards.AvgBlockspaceUsageNumBlocks', - sts.number() - ), -} - -export const transactionByteFee = { - /** - * Cost of one byte of blockspace - */ - v3: new ConstantType( - 'Rewards.TransactionByteFee', - sts.bigint() - ), -} - -export const maxRewardPoints = { - /** - * Max number of reward points - */ - v3: new ConstantType( - 'Rewards.MaxRewardPoints', - sts.number() - ), -} - -export const proposerTaxOnVotes = { - /** - * Tax of the proposer on vote rewards - */ - v3: new ConstantType( - 'Rewards.ProposerTaxOnVotes', - sts.tuple(() => [sts.number(), sts.number()]) - ), -} diff --git a/indexers/general-squid/src/types/rewards/events.ts b/indexers/general-squid/src/types/rewards/events.ts deleted file mode 100644 index 5b01a1694..000000000 --- a/indexers/general-squid/src/types/rewards/events.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockReward = { - name: 'Rewards.BlockReward', - /** - * Issued reward for the block author. - */ - v0: new EventType( - 'Rewards.BlockReward', - sts.struct({ - blockAuthor: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} - -export const voteReward = { - name: 'Rewards.VoteReward', - /** - * Issued reward for the voter. - */ - v0: new EventType( - 'Rewards.VoteReward', - sts.struct({ - voter: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} diff --git a/indexers/general-squid/src/types/rewards/storage.ts b/indexers/general-squid/src/types/rewards/storage.ts deleted file mode 100644 index 971093421..000000000 --- a/indexers/general-squid/src/types/rewards/storage.ts +++ /dev/null @@ -1,82 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const avgBlockspaceUsage = { - /** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ - v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, -} - -/** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ -export interface AvgBlockspaceUsageV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const rewardsEnabled = { - /** - * Whether rewards are enabled - */ - v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, -} - -/** - * Whether rewards are enabled - */ -export interface RewardsEnabledV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const remainingIssuance = { - /** - * Tokens left to issue to farmers at any given time - */ - v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, -} - -/** - * Tokens left to issue to farmers at any given time - */ -export interface RemainingIssuanceV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const proposerSubsidyPoints = { - /** - * Block proposer subsidy parameters - */ - v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, -} - -/** - * Block proposer subsidy parameters - */ -export interface ProposerSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} - -export const voterSubsidyPoints = { - /** - * Voter subsidy parameters - */ - v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, -} - -/** - * Voter subsidy parameters - */ -export interface VoterSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} diff --git a/indexers/general-squid/src/types/storage.ts b/indexers/general-squid/src/types/storage.ts deleted file mode 100644 index cf9914baa..000000000 --- a/indexers/general-squid/src/types/storage.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as system from './system/storage' -export * as timestamp from './timestamp/storage' -export * as subspace from './subspace/storage' -export * as balances from './balances/storage' -export * as transactionFees from './transaction-fees/storage' -export * as domains from './domains/storage' -export * as messenger from './messenger/storage' -export * as rewards from './rewards/storage' diff --git a/indexers/general-squid/src/types/subspace/calls.ts b/indexers/general-squid/src/types/subspace/calls.ts deleted file mode 100644 index add70afae..000000000 --- a/indexers/general-squid/src/types/subspace/calls.ts +++ /dev/null @@ -1,79 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const reportEquivocation = { - name: 'Subspace.report_equivocation', - /** - * See [`Pallet::report_equivocation`]. - */ - v0: new CallType( - 'Subspace.report_equivocation', - sts.struct({ - equivocationProof: v0.EquivocationProof, - }) - ), -} - -export const storeSegmentHeaders = { - name: 'Subspace.store_segment_headers', - /** - * See [`Pallet::store_segment_headers`]. - */ - v0: new CallType( - 'Subspace.store_segment_headers', - sts.struct({ - segmentHeaders: sts.array(() => v0.SegmentHeader), - }) - ), -} - -export const enableSolutionRangeAdjustment = { - name: 'Subspace.enable_solution_range_adjustment', - /** - * See [`Pallet::enable_solution_range_adjustment`]. - */ - v0: new CallType( - 'Subspace.enable_solution_range_adjustment', - sts.struct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }) - ), -} - -export const vote = { - name: 'Subspace.vote', - /** - * See [`Pallet::vote`]. - */ - v0: new CallType( - 'Subspace.vote', - sts.struct({ - signedVote: v0.SignedVote, - }) - ), -} - -export const enableRewardsAt = { - name: 'Subspace.enable_rewards_at', - /** - * See [`Pallet::enable_rewards_at`]. - */ - v0: new CallType( - 'Subspace.enable_rewards_at', - sts.struct({ - enableRewardsAt: v0.EnableRewardsAt, - }) - ), -} - -export const enableAuthoringByAnyone = { - name: 'Subspace.enable_authoring_by_anyone', - /** - * See [`Pallet::enable_authoring_by_anyone`]. - */ - v0: new CallType( - 'Subspace.enable_authoring_by_anyone', - sts.unit() - ), -} diff --git a/indexers/general-squid/src/types/subspace/constants.ts b/indexers/general-squid/src/types/subspace/constants.ts deleted file mode 100644 index 555317b21..000000000 --- a/indexers/general-squid/src/types/subspace/constants.ts +++ /dev/null @@ -1,154 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockAuthoringDelay = { - /** - * Number of slots between slot arrival and when corresponding block can be produced. - * - * Practically this means future proof of time proof needs to be revealed this many slots - * ahead before block can be authored even though solution is available before that. - */ - v0: new ConstantType( - 'Subspace.BlockAuthoringDelay', - v0.Slot - ), -} - -export const potEntropyInjectionInterval = { - /** - * Interval, in blocks, between blockchain entropy injection into proof of time chain. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionInterval', - sts.number() - ), -} - -export const potEntropyInjectionLookbackDepth = { - /** - * Interval, in entropy injection intervals, where to take entropy for injection from. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionLookbackDepth', - sts.number() - ), -} - -export const potEntropyInjectionDelay = { - /** - * Delay after block, in slots, when entropy injection takes effect. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionDelay', - v0.Slot - ), -} - -export const eraDuration = { - /** - * The amount of time, in blocks, that each era should last. - * NOTE: Currently it is not possible to change the era duration after - * the chain has started. Attempting to do so will brick block production. - */ - v0: new ConstantType( - 'Subspace.EraDuration', - sts.number() - ), -} - -export const initialSolutionRange = { - /** - * Initial solution range used for challenges during the very first era. - */ - v0: new ConstantType( - 'Subspace.InitialSolutionRange', - sts.bigint() - ), -} - -export const slotProbability = { - /** - * How often in slots slots (on average, not counting collisions) will have a block. - * - * Expressed as a rational where the first member of the tuple is the - * numerator and the second is the denominator. The rational should - * represent a value between 0 and 1. - */ - v0: new ConstantType( - 'Subspace.SlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const confirmationDepthK = { - /** - * Depth `K` after which a block enters the recorded history (a global constant, as opposed - * to the client-dependent transaction confirmation depth `k`). - */ - v0: new ConstantType( - 'Subspace.ConfirmationDepthK', - sts.number() - ), -} - -export const recentSegments = { - /** - * Number of latest archived segments that are considered "recent history". - */ - v0: new ConstantType( - 'Subspace.RecentSegments', - v0.HistorySize - ), -} - -export const recentHistoryFraction = { - /** - * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. - */ - v0: new ConstantType( - 'Subspace.RecentHistoryFraction', - sts.tuple(() => [v0.HistorySize, v0.HistorySize]) - ), -} - -export const minSectorLifetime = { - /** - * Minimum lifetime of a plotted sector, measured in archived segment. - */ - v0: new ConstantType( - 'Subspace.MinSectorLifetime', - v0.HistorySize - ), -} - -export const expectedVotesPerBlock = { - /** - * Number of votes expected per block. - * - * This impacts solution range for votes in consensus. - */ - v0: new ConstantType( - 'Subspace.ExpectedVotesPerBlock', - sts.number() - ), -} - -export const maxPiecesInSector = { - /** - * How many pieces one sector is supposed to contain (max) - */ - v0: new ConstantType( - 'Subspace.MaxPiecesInSector', - sts.number() - ), -} - -export const blockSlotCount = { - /** - * Maximum number of block number to block slot mappings to keep (oldest pruned first). - */ - v3: new ConstantType( - 'Subspace.BlockSlotCount', - sts.number() - ), -} diff --git a/indexers/general-squid/src/types/subspace/events.ts b/indexers/general-squid/src/types/subspace/events.ts deleted file mode 100644 index 65427a471..000000000 --- a/indexers/general-squid/src/types/subspace/events.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const segmentHeaderStored = { - name: 'Subspace.SegmentHeaderStored', - /** - * Segment header was stored in blockchain history. - */ - v0: new EventType( - 'Subspace.SegmentHeaderStored', - sts.struct({ - segmentHeader: v0.SegmentHeader, - }) - ), -} - -export const farmerVote = { - name: 'Subspace.FarmerVote', - /** - * Farmer vote. - */ - v0: new EventType( - 'Subspace.FarmerVote', - sts.struct({ - publicKey: v0.Public, - rewardAddress: v0.AccountId32, - height: sts.number(), - parentHash: v0.H256, - }) - ), -} diff --git a/indexers/general-squid/src/types/subspace/storage.ts b/indexers/general-squid/src/types/subspace/storage.ts deleted file mode 100644 index 8c1220cc5..000000000 --- a/indexers/general-squid/src/types/subspace/storage.ts +++ /dev/null @@ -1,390 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const genesisSlot = { - /** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ - v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, -} - -/** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ -export interface GenesisSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const currentSlot = { - /** - * Current slot number. - */ - v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, -} - -/** - * Current slot number. - */ -export interface CurrentSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const potSlotIterations = { - /** - * Number of iterations for proof of time per slot - */ - v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, -} - -/** - * Number of iterations for proof of time per slot - */ -export interface PotSlotIterationsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.NonZeroU32 | undefined)> -} - -export const solutionRanges = { - /** - * Solution ranges used for challenges. - */ - v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, -} - -/** - * Solution ranges used for challenges. - */ -export interface SolutionRangesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.SolutionRanges - get(block: Block): Promise<(v0.SolutionRanges | undefined)> -} - -export const shouldAdjustSolutionRange = { - /** - * Storage to check if the solution range is to be adjusted for next era - */ - v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, -} - -/** - * Storage to check if the solution range is to be adjusted for next era - */ -export interface ShouldAdjustSolutionRangeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const nextSolutionRangeOverride = { - /** - * Override solution range during next update - */ - v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, -} - -/** - * Override solution range during next update - */ -export interface NextSolutionRangeOverrideV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> -} - -export const eraStartSlot = { - /** - * Slot at which current era started. - */ - v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, -} - -/** - * Slot at which current era started. - */ -export interface EraStartSlotV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const blockList = { - /** - * A set of blocked farmers keyed by their public key. - */ - v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, -} - -/** - * A set of blocked farmers keyed by their public key. - */ -export interface BlockListV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.Public): Promise<(null | undefined)> - getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.Public): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable - getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> -} - -export const segmentCommitment = { - /** - * Mapping from segment index to corresponding segment commitment of contained records. - */ - v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, -} - -/** - * Mapping from segment index to corresponding segment commitment of contained records. - */ -export interface SegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> - getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.SegmentIndex): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable - getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> -} - -export const counterForSegmentCommitment = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForSegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const didProcessSegmentHeaders = { - /** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, -} - -/** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ -export interface DidProcessSegmentHeadersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const parentVoteVerificationData = { - /** - * Storage of previous vote verification data, updated on each block during finalization. - */ - v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, -} - -/** - * Storage of previous vote verification data, updated on each block during finalization. - */ -export interface ParentVoteVerificationDataV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.VoteVerificationData | undefined)> -} - -export const parentBlockAuthorInfo = { - /** - * Parent block author information. - */ - v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, -} - -/** - * Parent block author information. - */ -export interface ParentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> -} - -export const enableRewards = { - /** - * Enable rewards since specified block number. - */ - v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, -} - -/** - * Enable rewards since specified block number. - */ -export interface EnableRewardsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const enableRewardsBelowSolutionRange = { - /** - * Enable rewards when solution range is below this threshold. - */ - v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, -} - -/** - * Enable rewards when solution range is below this threshold. - */ -export interface EnableRewardsBelowSolutionRangeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(bigint | undefined)> -} - -export const currentBlockAuthorInfo = { - /** - * Temporary value (cleared at block finalization) with block author information. - */ - v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, -} - -/** - * Temporary value (cleared at block finalization) with block author information. - */ -export interface CurrentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> -} - -export const parentBlockVoters = { - /** - * Voters in the parent block (set at the end of the block with current values). - */ - v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, -} - -/** - * Voters in the parent block (set at the end of the block with current values). - */ -export interface ParentBlockVotersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const currentBlockVoters = { - /** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ - v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, -} - -/** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ -export interface CurrentBlockVotersV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const potEntropy = { - /** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ - v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, -} - -/** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ -export interface PotEntropyV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v0.PotEntropyValue][] - get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> -} - -export const blockRandomness = { - /** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ - v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, -} - -/** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ -export interface BlockRandomnessV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Randomness | undefined)> -} - -export const allowAuthoringByAnyone = { - /** - * Allow block authoring by anyone or just root. - */ - v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, -} - -/** - * Allow block authoring by anyone or just root. - */ -export interface AllowAuthoringByAnyoneV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const rootPlotPublicKey = { - /** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ - v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, -} - -/** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ -export interface RootPlotPublicKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Public | undefined)> -} - -export const blockSlots = { - /** - * Bounded mapping from block number to slot - */ - v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, -} - -/** - * Bounded mapping from block number to slot - */ -export interface BlockSlotsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v3.Slot][] - get(block: Block): Promise<([number, v3.Slot][] | undefined)> -} diff --git a/indexers/general-squid/src/types/support.ts b/indexers/general-squid/src/types/support.ts deleted file mode 100644 index 456dfc2fb..000000000 --- a/indexers/general-squid/src/types/support.ts +++ /dev/null @@ -1,142 +0,0 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' -import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' -import assert from 'assert' - - -export {sts, Bytes, BitSequence, Option, Result} - - -export interface RuntimeCtx { - _runtime: Runtime -} - - -export interface Block extends RuntimeCtx { - hash: Bytes - height: number -} - - -interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } -} - - -export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } -} - - -export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } -} - - -export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } -} diff --git a/indexers/general-squid/src/types/system/calls.ts b/indexers/general-squid/src/types/system/calls.ts deleted file mode 100644 index 24f23464e..000000000 --- a/indexers/general-squid/src/types/system/calls.ts +++ /dev/null @@ -1,146 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const remark = { - name: 'System.remark', - /** - * See [`Pallet::remark`]. - */ - v0: new CallType( - 'System.remark', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const setHeapPages = { - name: 'System.set_heap_pages', - /** - * See [`Pallet::set_heap_pages`]. - */ - v0: new CallType( - 'System.set_heap_pages', - sts.struct({ - pages: sts.bigint(), - }) - ), -} - -export const setCode = { - name: 'System.set_code', - /** - * See [`Pallet::set_code`]. - */ - v0: new CallType( - 'System.set_code', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setCodeWithoutChecks = { - name: 'System.set_code_without_checks', - /** - * See [`Pallet::set_code_without_checks`]. - */ - v0: new CallType( - 'System.set_code_without_checks', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setStorage = { - name: 'System.set_storage', - /** - * See [`Pallet::set_storage`]. - */ - v0: new CallType( - 'System.set_storage', - sts.struct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }) - ), -} - -export const killStorage = { - name: 'System.kill_storage', - /** - * See [`Pallet::kill_storage`]. - */ - v0: new CallType( - 'System.kill_storage', - sts.struct({ - keys: sts.array(() => sts.bytes()), - }) - ), -} - -export const killPrefix = { - name: 'System.kill_prefix', - /** - * See [`Pallet::kill_prefix`]. - */ - v0: new CallType( - 'System.kill_prefix', - sts.struct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }) - ), -} - -export const remarkWithEvent = { - name: 'System.remark_with_event', - /** - * See [`Pallet::remark_with_event`]. - */ - v0: new CallType( - 'System.remark_with_event', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const authorizeUpgrade = { - name: 'System.authorize_upgrade', - /** - * See [`Pallet::authorize_upgrade`]. - */ - v0: new CallType( - 'System.authorize_upgrade', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const authorizeUpgradeWithoutChecks = { - name: 'System.authorize_upgrade_without_checks', - /** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ - v0: new CallType( - 'System.authorize_upgrade_without_checks', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const applyAuthorizedUpgrade = { - name: 'System.apply_authorized_upgrade', - /** - * See [`Pallet::apply_authorized_upgrade`]. - */ - v0: new CallType( - 'System.apply_authorized_upgrade', - sts.struct({ - code: sts.bytes(), - }) - ), -} diff --git a/indexers/general-squid/src/types/system/constants.ts b/indexers/general-squid/src/types/system/constants.ts deleted file mode 100644 index 653ab1df2..000000000 --- a/indexers/general-squid/src/types/system/constants.ts +++ /dev/null @@ -1,66 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockWeights = { - /** - * Block & extrinsics weights: base values and limits. - */ - v0: new ConstantType( - 'System.BlockWeights', - v0.BlockWeights - ), -} - -export const blockLength = { - /** - * The maximum length of a block (in bytes). - */ - v0: new ConstantType( - 'System.BlockLength', - v0.BlockLength - ), -} - -export const blockHashCount = { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - */ - v0: new ConstantType( - 'System.BlockHashCount', - sts.number() - ), -} - -export const dbWeight = { - /** - * The weight of runtime database operations the runtime can invoke. - */ - v0: new ConstantType( - 'System.DbWeight', - v0.RuntimeDbWeight - ), -} - -export const version = { - /** - * Get the chain's current version. - */ - v0: new ConstantType( - 'System.Version', - v0.RuntimeVersion - ), -} - -export const ss58Prefix = { - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - */ - v0: new ConstantType( - 'System.SS58Prefix', - sts.number() - ), -} diff --git a/indexers/general-squid/src/types/system/events.ts b/indexers/general-squid/src/types/system/events.ts deleted file mode 100644 index 2c8c5731b..000000000 --- a/indexers/general-squid/src/types/system/events.ts +++ /dev/null @@ -1,94 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const extrinsicSuccess = { - name: 'System.ExtrinsicSuccess', - /** - * An extrinsic completed successfully. - */ - v0: new EventType( - 'System.ExtrinsicSuccess', - sts.struct({ - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const extrinsicFailed = { - name: 'System.ExtrinsicFailed', - /** - * An extrinsic failed. - */ - v0: new EventType( - 'System.ExtrinsicFailed', - sts.struct({ - dispatchError: v0.DispatchError, - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const codeUpdated = { - name: 'System.CodeUpdated', - /** - * `:code` was updated. - */ - v0: new EventType( - 'System.CodeUpdated', - sts.unit() - ), -} - -export const newAccount = { - name: 'System.NewAccount', - /** - * A new account was created. - */ - v0: new EventType( - 'System.NewAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const killedAccount = { - name: 'System.KilledAccount', - /** - * An account was reaped. - */ - v0: new EventType( - 'System.KilledAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const remarked = { - name: 'System.Remarked', - /** - * On on-chain remark happened. - */ - v0: new EventType( - 'System.Remarked', - sts.struct({ - sender: v0.AccountId32, - hash: v0.H256, - }) - ), -} - -export const upgradeAuthorized = { - name: 'System.UpgradeAuthorized', - /** - * An upgrade was authorized. - */ - v0: new EventType( - 'System.UpgradeAuthorized', - sts.struct({ - codeHash: v0.H256, - checkVersion: sts.boolean(), - }) - ), -} diff --git a/indexers/general-squid/src/types/system/storage.ts b/indexers/general-squid/src/types/system/storage.ts deleted file mode 100644 index 9f776b387..000000000 --- a/indexers/general-squid/src/types/system/storage.ts +++ /dev/null @@ -1,405 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const account = { - /** - * The full account information for a particular account ID. - */ - v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, -} - -/** - * The full account information for a particular account ID. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountInfo - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountInfo | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> -} - -export const extrinsicCount = { - /** - * Total extrinsics count for the current block. - */ - v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, -} - -/** - * Total extrinsics count for the current block. - */ -export interface ExtrinsicCountV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockWeight = { - /** - * The current weight for the block. - */ - v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, -} - -/** - * The current weight for the block. - */ -export interface BlockWeightV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.PerDispatchClass - get(block: Block): Promise<(v0.PerDispatchClass | undefined)> -} - -export const allExtrinsicsLen = { - /** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ - v0: new StorageType('System.AllExtrinsicsLen', 'Optional', [], sts.number()) as AllExtrinsicsLenV0, -} - -/** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ -export interface AllExtrinsicsLenV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockHash = { - /** - * Map of block numbers to block hashes. - */ - v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, -} - -/** - * Map of block numbers to block hashes. - */ -export interface BlockHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block, key: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> -} - -export const extrinsicData = { - /** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ - v0: new StorageType('System.ExtrinsicData', 'Default', [sts.number()], sts.bytes()) as ExtrinsicDataV0, -} - -/** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ -export interface ExtrinsicDataV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: number): Promise<(Bytes | undefined)> - getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (Bytes | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (Bytes | undefined)][]> -} - -export const number = { - /** - * The current block number being processed. Set by `execute_block`. - */ - v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, -} - -/** - * The current block number being processed. Set by `execute_block`. - */ -export interface NumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const parentHash = { - /** - * Hash of the previous block. - */ - v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, -} - -/** - * Hash of the previous block. - */ -export interface ParentHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise<(v0.H256 | undefined)> -} - -export const digest = { - /** - * Digest of the current block, also part of the block header. - */ - v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, -} - -/** - * Digest of the current block, also part of the block header. - */ -export interface DigestV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Digest - get(block: Block): Promise<(v0.Digest | undefined)> -} - -export const events = { - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v0: new StorageType('System.Events', 'Default', [], sts.array(() => v0.EventRecord)) as EventsV0, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v1: new StorageType('System.Events', 'Default', [], sts.array(() => v1.EventRecord)) as EventsV1, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v5: new StorageType('System.Events', 'Default', [], sts.array(() => v5.EventRecord)) as EventsV5, -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.EventRecord[] - get(block: Block): Promise<(v0.EventRecord[] | undefined)> -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.EventRecord[] - get(block: Block): Promise<(v1.EventRecord[] | undefined)> -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v5.EventRecord[] - get(block: Block): Promise<(v5.EventRecord[] | undefined)> -} - -export const eventCount = { - /** - * The number of events in the `Events` list. - */ - v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, -} - -/** - * The number of events in the `Events` list. - */ -export interface EventCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const eventTopics = { - /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ - v0: new StorageType('System.EventTopics', 'Default', [v0.H256], sts.array(() => sts.tuple(() => [sts.number(), sts.number()]))) as EventTopicsV0, -} - -/** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ -export interface EventTopicsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, number][] - get(block: Block, key: v0.H256): Promise<([number, number][] | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> -} - -export const lastRuntimeUpgrade = { - /** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ - v0: new StorageType('System.LastRuntimeUpgrade', 'Optional', [], v0.LastRuntimeUpgradeInfo) as LastRuntimeUpgradeV0, -} - -/** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ -export interface LastRuntimeUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.LastRuntimeUpgradeInfo | undefined)> -} - -export const upgradedToU32RefCount = { - /** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ - v0: new StorageType('System.UpgradedToU32RefCount', 'Default', [], sts.boolean()) as UpgradedToU32RefCountV0, -} - -/** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ -export interface UpgradedToU32RefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const upgradedToTripleRefCount = { - /** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ - v0: new StorageType('System.UpgradedToTripleRefCount', 'Default', [], sts.boolean()) as UpgradedToTripleRefCountV0, -} - -/** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ -export interface UpgradedToTripleRefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const executionPhase = { - /** - * The execution phase of the block. - */ - v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, -} - -/** - * The execution phase of the block. - */ -export interface ExecutionPhaseV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Phase | undefined)> -} - -export const authorizedUpgrade = { - /** - * `Some` if a code upgrade has been authorized. - */ - v0: new StorageType('System.AuthorizedUpgrade', 'Optional', [], v0.CodeUpgradeAuthorization) as AuthorizedUpgradeV0, -} - -/** - * `Some` if a code upgrade has been authorized. - */ -export interface AuthorizedUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CodeUpgradeAuthorization | undefined)> -} - -export const inherentsApplied = { - /** - * Whether all inherents have been applied. - */ - v5: new StorageType('System.InherentsApplied', 'Default', [], sts.boolean()) as InherentsAppliedV5, -} - -/** - * Whether all inherents have been applied. - */ -export interface InherentsAppliedV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} diff --git a/indexers/general-squid/src/types/timestamp/calls.ts b/indexers/general-squid/src/types/timestamp/calls.ts deleted file mode 100644 index 60a975536..000000000 --- a/indexers/general-squid/src/types/timestamp/calls.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' - -export const set = { - name: 'Timestamp.set', - /** - * See [`Pallet::set`]. - */ - v0: new CallType( - 'Timestamp.set', - sts.struct({ - now: sts.bigint(), - }) - ), -} diff --git a/indexers/general-squid/src/types/timestamp/constants.ts b/indexers/general-squid/src/types/timestamp/constants.ts deleted file mode 100644 index 09884d72c..000000000 --- a/indexers/general-squid/src/types/timestamp/constants.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const minimumPeriod = { - /** - * The minimum period between blocks. - * - * Be aware that this is different to the *expected* period that the block production - * apparatus provides. Your chosen consensus system will generally work with this to - * determine a sensible block time. For example, in the Aura pallet it will be double this - * period on default settings. - */ - v0: new ConstantType( - 'Timestamp.MinimumPeriod', - sts.bigint() - ), -} diff --git a/indexers/general-squid/src/types/timestamp/storage.ts b/indexers/general-squid/src/types/timestamp/storage.ts deleted file mode 100644 index 1bf820c09..000000000 --- a/indexers/general-squid/src/types/timestamp/storage.ts +++ /dev/null @@ -1,39 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' - -export const now = { - /** - * The current time for the current block. - */ - v0: new StorageType('Timestamp.Now', 'Default', [], sts.bigint()) as NowV0, -} - -/** - * The current time for the current block. - */ -export interface NowV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const didUpdate = { - /** - * Whether the timestamp has been updated in this block. - * - * This value is updated to `true` upon successful submission of a timestamp by a node. - * It is then checked at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Timestamp.DidUpdate', 'Default', [], sts.boolean()) as DidUpdateV0, -} - -/** - * Whether the timestamp has been updated in this block. - * - * This value is updated to `true` upon successful submission of a timestamp by a node. - * It is then checked at the end of each block execution in the `on_finalize` hook. - */ -export interface DidUpdateV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} diff --git a/indexers/general-squid/src/types/transaction-fees/constants.ts b/indexers/general-squid/src/types/transaction-fees/constants.ts deleted file mode 100644 index 60de86b39..000000000 --- a/indexers/general-squid/src/types/transaction-fees/constants.ts +++ /dev/null @@ -1,43 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const minReplicationFactor = { - /** - * Minimum desired number of replicas of the blockchain to be stored by the network, - * impacts storage fees. - */ - v0: new ConstantType( - 'TransactionFees.MinReplicationFactor', - sts.number() - ), -} - -export const creditSupply = { - /** - * How many credits there is in circulation. - */ - v0: new ConstantType( - 'TransactionFees.CreditSupply', - sts.bigint() - ), -} - -export const totalSpacePledged = { - /** - * How much space there is on the network. - */ - v0: new ConstantType( - 'TransactionFees.TotalSpacePledged', - sts.bigint() - ), -} - -export const blockchainHistorySize = { - /** - * How big is the history of the blockchain in archived state (thus includes erasure - * coding, but not replication). - */ - v0: new ConstantType( - 'TransactionFees.BlockchainHistorySize', - sts.bigint() - ), -} diff --git a/indexers/general-squid/src/types/transaction-fees/events.ts b/indexers/general-squid/src/types/transaction-fees/events.ts deleted file mode 100644 index 4726ccd18..000000000 --- a/indexers/general-squid/src/types/transaction-fees/events.ts +++ /dev/null @@ -1,54 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockFees = { - name: 'TransactionFees.BlockFees', - /** - * Storage fees. - */ - v0: new EventType( - 'TransactionFees.BlockFees', - sts.struct({ - /** - * Block author that received the fees. - */ - who: v0.AccountId32, - /** - * Amount of collected storage fees. - */ - storage: sts.bigint(), - /** - * Amount of collected compute fees. - */ - compute: sts.bigint(), - /** - * Amount of collected tips. - */ - tips: sts.bigint(), - }) - ), -} - -export const burnedBlockFees = { - name: 'TransactionFees.BurnedBlockFees', - /** - * Fees burned due to equivocated block author. - */ - v0: new EventType( - 'TransactionFees.BurnedBlockFees', - sts.struct({ - /** - * Amount of burned storage fees. - */ - storage: sts.bigint(), - /** - * Amount of burned compute fees. - */ - compute: sts.bigint(), - /** - * Amount of burned tips. - */ - tips: sts.bigint(), - }) - ), -} diff --git a/indexers/general-squid/src/types/transaction-fees/storage.ts b/indexers/general-squid/src/types/transaction-fees/storage.ts deleted file mode 100644 index 34c003453..000000000 --- a/indexers/general-squid/src/types/transaction-fees/storage.ts +++ /dev/null @@ -1,86 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transactionByteFee = { - /** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ - v0: new StorageType('TransactionFees.TransactionByteFee', 'Default', [], v0.BlockTransactionByteFee) as TransactionByteFeeV0, -} - -/** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ -export interface TransactionByteFeeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BlockTransactionByteFee - get(block: Block): Promise<(v0.BlockTransactionByteFee | undefined)> -} - -export const isDuringBlockExecution = { - /** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ - v0: new StorageType('TransactionFees.IsDuringBlockExecution', 'Default', [], sts.boolean()) as IsDuringBlockExecutionV0, -} - -/** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ -export interface IsDuringBlockExecutionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const blockAuthor = { - /** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.BlockAuthor', 'Optional', [], v0.AccountId32) as BlockAuthorV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ -export interface BlockAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.AccountId32 | undefined)> -} - -export const collectedBlockFees = { - /** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.CollectedBlockFees', 'Optional', [], v0.CollectedFees) as CollectedBlockFeesV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ -export interface CollectedBlockFeesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CollectedFees | undefined)> -} diff --git a/indexers/general-squid/src/types/utility/calls.ts b/indexers/general-squid/src/types/utility/calls.ts deleted file mode 100644 index d40533708..000000000 --- a/indexers/general-squid/src/types/utility/calls.ts +++ /dev/null @@ -1,320 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const batch = { - name: 'Utility.batch', - /** - * See [`Pallet::batch`]. - */ - v0: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::batch`]. - */ - v1: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::batch`]. - */ - v3: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), - /** - * Send a batch of dispatch calls. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - * - * This will return `Ok` in all circumstances. To determine the success of the batch, an - * event is deposited. If a call failed and the batch was interrupted, then the - * `BatchInterrupted` event is deposited, along with the number of successful calls made - * and the error of the failed call. If all were successful, then the `BatchCompleted` - * event is deposited. - */ - v5: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v5.Call), - }) - ), -} - -export const asDerivative = { - name: 'Utility.as_derivative', - /** - * See [`Pallet::as_derivative`]. - */ - v0: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v0.Call, - }) - ), - /** - * See [`Pallet::as_derivative`]. - */ - v1: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v1.Call, - }) - ), - /** - * See [`Pallet::as_derivative`]. - */ - v3: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v3.Call, - }) - ), - /** - * Send a call through an indexed pseudonym of the sender. - * - * Filter from origin are passed along. The call will be dispatched with an origin which - * use the same filter as the origin of this call. - * - * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. - * because you expect `proxy` to have been used prior in the call stack and you do not want - * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` - * in the Multisig pallet instead. - * - * NOTE: Prior to version *12, this was called `as_limited_sub`. - * - * The dispatch origin for this call must be _Signed_. - */ - v5: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v5.Call, - }) - ), -} - -export const batchAll = { - name: 'Utility.batch_all', - /** - * See [`Pallet::batch_all`]. - */ - v0: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::batch_all`]. - */ - v1: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::batch_all`]. - */ - v3: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), - /** - * Send a batch of dispatch calls and atomically execute them. - * The whole transaction will rollback and fail if any of the calls failed. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ - v5: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v5.Call), - }) - ), -} - -export const dispatchAs = { - name: 'Utility.dispatch_as', - /** - * See [`Pallet::dispatch_as`]. - */ - v0: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v0.OriginCaller, - call: v0.Call, - }) - ), - /** - * See [`Pallet::dispatch_as`]. - */ - v1: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v1.OriginCaller, - call: v1.Call, - }) - ), - /** - * See [`Pallet::dispatch_as`]. - */ - v3: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v3.OriginCaller, - call: v3.Call, - }) - ), - /** - * Dispatches a function call with a provided origin. - * - * The dispatch origin for this call must be _Root_. - * - * ## Complexity - * - O(1). - */ - v5: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v5.OriginCaller, - call: v5.Call, - }) - ), -} - -export const forceBatch = { - name: 'Utility.force_batch', - /** - * See [`Pallet::force_batch`]. - */ - v0: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::force_batch`]. - */ - v1: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::force_batch`]. - */ - v3: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), - /** - * Send a batch of dispatch calls. - * Unlike `batch`, it allows errors and won't interrupt. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatch without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ - v5: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v5.Call), - }) - ), -} - -export const withWeight = { - name: 'Utility.with_weight', - /** - * See [`Pallet::with_weight`]. - */ - v0: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v0.Call, - weight: v0.Weight, - }) - ), - /** - * See [`Pallet::with_weight`]. - */ - v1: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v1.Call, - weight: v1.Weight, - }) - ), - /** - * See [`Pallet::with_weight`]. - */ - v3: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v3.Call, - weight: v3.Weight, - }) - ), - /** - * Dispatch a function call with a specified weight. - * - * This function does not check the weight of the call, and instead allows the - * Root origin to specify the weight of the call. - * - * The dispatch origin for this call must be _Root_. - */ - v5: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v5.Call, - weight: v5.Weight, - }) - ), -} diff --git a/indexers/general-squid/src/types/utility/constants.ts b/indexers/general-squid/src/types/utility/constants.ts deleted file mode 100644 index e82480598..000000000 --- a/indexers/general-squid/src/types/utility/constants.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const batchedCallsLimit = { - /** - * The limit on the number of batched calls. - */ - v0: new ConstantType( - 'Utility.batched_calls_limit', - sts.number() - ), -} diff --git a/indexers/general-squid/src/types/utility/events.ts b/indexers/general-squid/src/types/utility/events.ts deleted file mode 100644 index 1652db0da..000000000 --- a/indexers/general-squid/src/types/utility/events.ts +++ /dev/null @@ -1,76 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const batchInterrupted = { - name: 'Utility.BatchInterrupted', - /** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ - v0: new EventType( - 'Utility.BatchInterrupted', - sts.struct({ - index: sts.number(), - error: v0.DispatchError, - }) - ), -} - -export const batchCompleted = { - name: 'Utility.BatchCompleted', - /** - * Batch of dispatches completed fully with no error. - */ - v0: new EventType( - 'Utility.BatchCompleted', - sts.unit() - ), -} - -export const batchCompletedWithErrors = { - name: 'Utility.BatchCompletedWithErrors', - /** - * Batch of dispatches completed but has errors. - */ - v0: new EventType( - 'Utility.BatchCompletedWithErrors', - sts.unit() - ), -} - -export const itemCompleted = { - name: 'Utility.ItemCompleted', - /** - * A single item within a Batch of dispatches has completed with no error. - */ - v0: new EventType( - 'Utility.ItemCompleted', - sts.unit() - ), -} - -export const itemFailed = { - name: 'Utility.ItemFailed', - /** - * A single item within a Batch of dispatches has completed with error. - */ - v0: new EventType( - 'Utility.ItemFailed', - sts.struct({ - error: v0.DispatchError, - }) - ), -} - -export const dispatchedAs = { - name: 'Utility.DispatchedAs', - /** - * A call was dispatched. - */ - v0: new EventType( - 'Utility.DispatchedAs', - sts.struct({ - result: sts.result(() => sts.unit(), () => v0.DispatchError), - }) - ), -} diff --git a/indexers/general-squid/src/types/v0.ts b/indexers/general-squid/src/types/v0.ts deleted file mode 100644 index deff27135..000000000 --- a/indexers/general-squid/src/types/v0.ts +++ /dev/null @@ -1,4597 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const HistorySize = sts.bigint() - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export const RuntimeDbWeight: sts.Type = sts.struct(() => { - return { - read: sts.bigint(), - write: sts.bigint(), - } -}) - -export interface RuntimeDbWeight { - read: bigint - write: bigint -} - -export const BlockLength: sts.Type = sts.struct(() => { - return { - max: Type_85, - } -}) - -export const Type_85: sts.Type = sts.struct(() => { - return { - normal: sts.number(), - operational: sts.number(), - mandatory: sts.number(), - } -}) - -export interface Type_85 { - normal: number - operational: number - mandatory: number -} - -export interface BlockLength { - max: Type_85 -} - -export const BlockWeights: sts.Type = sts.struct(() => { - return { - baseBlock: Weight, - maxBlock: Weight, - perClass: Type_81, - } -}) - -export const Type_81: sts.Type = sts.struct(() => { - return { - normal: WeightsPerClass, - operational: WeightsPerClass, - mandatory: WeightsPerClass, - } -}) - -export const WeightsPerClass: sts.Type = sts.struct(() => { - return { - baseExtrinsic: Weight, - maxExtrinsic: sts.option(() => Weight), - maxTotal: sts.option(() => Weight), - reserved: sts.option(() => Weight), - } -}) - -export interface WeightsPerClass { - baseExtrinsic: Weight - maxExtrinsic?: (Weight | undefined) - maxTotal?: (Weight | undefined) - reserved?: (Weight | undefined) -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export interface Type_81 { - normal: WeightsPerClass - operational: WeightsPerClass - mandatory: WeightsPerClass -} - -export interface BlockWeights { - baseBlock: Weight - maxBlock: Weight - perClass: Type_81 -} - -export interface BlockMessages { - outbox: [ChainId, [bigint, bigint], MessageWeightTag][] - inboxResponses: [ChainId, [bigint, bigint], MessageWeightTag][] -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export const BlockMessages: sts.Type = sts.struct(() => { - return { - outbox: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - inboxResponses: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export interface Message { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - payload: VersionedPayload - lastDeliveredMessageResponseNonce?: (bigint | undefined) -} - -export type VersionedPayload = VersionedPayload_V0 - -export interface VersionedPayload_V0 { - __kind: 'V0' - value: Payload -} - -export type Payload = Payload_Endpoint | Payload_Protocol - -export interface Payload_Endpoint { - __kind: 'Endpoint' - value: Type_294 -} - -export interface Payload_Protocol { - __kind: 'Protocol' - value: RequestResponse -} - -export type RequestResponse = RequestResponse_Request | RequestResponse_Response - -export interface RequestResponse_Request { - __kind: 'Request' - value: ProtocolMessageRequest -} - -export interface RequestResponse_Response { - __kind: 'Response' - value: Result -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -export type ProtocolMessageRequest = ProtocolMessageRequest_ChannelClose | ProtocolMessageRequest_ChannelOpen - -export interface ProtocolMessageRequest_ChannelClose { - __kind: 'ChannelClose' -} - -export interface ProtocolMessageRequest_ChannelOpen { - __kind: 'ChannelOpen' - value: InitiateChannelParams -} - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -export interface FeeModel { - relayFee: bigint -} - -export type Type_294 = Type_294_Request | Type_294_Response - -export interface Type_294_Request { - __kind: 'Request' - value: EndpointRequest -} - -export interface Type_294_Response { - __kind: 'Response' - value: Result -} - -export interface EndpointRequest { - srcEndpoint: Endpoint - dstEndpoint: Endpoint - payload: Bytes -} - -export const Message: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - payload: VersionedPayload, - lastDeliveredMessageResponseNonce: sts.option(() => sts.bigint()), - } -}) - -export const VersionedPayload: sts.Type = sts.closedEnum(() => { - return { - V0: Payload, - } -}) - -export const Payload: sts.Type = sts.closedEnum(() => { - return { - Endpoint: Type_294, - Protocol: RequestResponse, - } -}) - -export const RequestResponse: sts.Type = sts.closedEnum(() => { - return { - Request: ProtocolMessageRequest, - Response: sts.result(() => sts.unit(), () => DispatchError), - } -}) - -export const ProtocolMessageRequest: sts.Type = sts.closedEnum(() => { - return { - ChannelClose: sts.unit(), - ChannelOpen: InitiateChannelParams, - } -}) - -export const Type_294: sts.Type = sts.closedEnum(() => { - return { - Request: EndpointRequest, - Response: sts.result(() => sts.bytes(), () => DispatchError), - } -}) - -export const EndpointRequest: sts.Type = sts.struct(() => { - return { - srcEndpoint: Endpoint, - dstEndpoint: Endpoint, - payload: sts.bytes(), - } -}) - -export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel -} - -export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open - -export interface ChannelState_Closed { - __kind: 'Closed' -} - -export interface ChannelState_Initiated { - __kind: 'Initiated' -} - -export interface ChannelState_Open { - __kind: 'Open' -} - -export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } -}) - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint -} - -export type U256 = bigint - -export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } -}) - -export const U256 = sts.bigint() - -export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint -} - -export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } -}) - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint -} - -export interface KnownDeposit { - shares: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } -}) - -export type DomainEpoch = [DomainId, number] - -export type SharePrice = number - -export const SharePrice = sts.number() - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] -} - -export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } -}) - -export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export type DomainId = number - -export interface CollectedFees { - storage: bigint - compute: bigint - tips: bigint -} - -export const CollectedFees: sts.Type = sts.struct(() => { - return { - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - } -}) - -export interface BlockTransactionByteFee { - current: bigint - next: bigint -} - -export const BlockTransactionByteFee: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.bigint(), - } -}) - -export interface Type_152 { - amount: bigint -} - -export const Type_152: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - } -}) - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface ReserveData { - id: Bytes - amount: bigint -} - -export const ReserveData: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - } -}) - -export interface BalanceLock { - id: Bytes - amount: bigint - reasons: Reasons -} - -export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc - -export interface Reasons_All { - __kind: 'All' -} - -export interface Reasons_Fee { - __kind: 'Fee' -} - -export interface Reasons_Misc { - __kind: 'Misc' -} - -export const BalanceLock: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - reasons: Reasons, - } -}) - -export const Reasons: sts.Type = sts.closedEnum(() => { - return { - All: sts.unit(), - Fee: sts.unit(), - Misc: sts.unit(), - } -}) - -export interface AccountData { - free: bigint - reserved: bigint - frozen: bigint - flags: ExtraFlags -} - -export type ExtraFlags = bigint - -export const AccountData: sts.Type = sts.struct(() => { - return { - free: sts.bigint(), - reserved: sts.bigint(), - frozen: sts.bigint(), - flags: ExtraFlags, - } -}) - -export const ExtraFlags = sts.bigint() - -export type Randomness = Bytes - -export const Randomness = sts.bytes() - -export interface PotEntropyValue { - targetSlot?: (Slot | undefined) - entropy: Bytes -} - -export const PotEntropyValue: sts.Type = sts.struct(() => { - return { - targetSlot: sts.option(() => Slot), - entropy: sts.bytes(), - } -}) - -export type Signature = Bytes - -export const Signature = sts.bytes() - -export interface Scalar { - inner: Bytes -} - -export type PieceOffset = number - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export const PieceOffset = sts.number() - -export interface VoteVerificationData { - solutionRange: bigint - voteSolutionRange: bigint - currentSlot: Slot - parentSlot: Slot -} - -export const VoteVerificationData: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - voteSolutionRange: sts.bigint(), - currentSlot: Slot, - parentSlot: Slot, - } -}) - -export type SegmentIndex = bigint - -export type SegmentCommitment = Bytes - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type Public = Bytes - -export interface SolutionRangeOverride { - solutionRange: bigint - votingSolutionRange: bigint -} - -export const SolutionRangeOverride: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - votingSolutionRange: sts.bigint(), - } -}) - -export interface SolutionRanges { - current: bigint - next?: (bigint | undefined) - votingCurrent: bigint - votingNext?: (bigint | undefined) -} - -export const SolutionRanges: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.option(() => sts.bigint()), - votingCurrent: sts.bigint(), - votingNext: sts.option(() => sts.bigint()), - } -}) - -export type NonZeroU32 = number - -export const NonZeroU32 = sts.number() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export interface CodeUpgradeAuthorization { - codeHash: H256 - checkVersion: boolean -} - -export const CodeUpgradeAuthorization: sts.Type = sts.struct(() => { - return { - codeHash: H256, - checkVersion: sts.boolean(), - } -}) - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export interface LastRuntimeUpgradeInfo { - specVersion: number - specName: string -} - -export const LastRuntimeUpgradeInfo: sts.Type = sts.struct(() => { - return { - specVersion: sts.number(), - specName: sts.string(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export interface Digest { - logs: DigestItem[] -} - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type H256 = Bytes - -export interface PerDispatchClass { - normal: Weight - operational: Weight - mandatory: Weight -} - -export const PerDispatchClass: sts.Type = sts.struct(() => { - return { - normal: Weight, - operational: Weight, - mandatory: Weight, - } -}) - -export type AccountId32 = Bytes - -export interface AccountInfo { - nonce: number - consumers: number - providers: number - sufficients: number - data: AccountData -} - -export const AccountInfo: sts.Type = sts.struct(() => { - return { - nonce: sts.number(), - consumers: sts.number(), - providers: sts.number(), - sufficients: sts.number(), - data: AccountData, - } -}) - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } -}) - -export interface BlockInfo { - blockNumber: number - blockHash: H256 -} - -export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: ([BlockInfo, StorageProof] | undefined) - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type HistorySize = bigint - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - switch_domain: sts.enumStruct({ - operatorId: sts.bigint(), - newDomainId: DomainId, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::switch_domain`]. - */ -export interface DomainsCall_switch_domain { - __kind: 'switch_domain' - operatorId: bigint - newDomainId: DomainId -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export const DomainId = sts.number() - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Public = sts.bytes() - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export const AccountId32 = sts.bytes() - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) diff --git a/indexers/general-squid/src/types/v1.ts b/indexers/general-squid/src/types/v1.ts deleted file mode 100644 index 44f1ffbdf..000000000 --- a/indexers/general-squid/src/types/v1.ts +++ /dev/null @@ -1,4097 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const PalletId = sts.bytes() - -export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 -} - -export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } -}) - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainId = sts.number() - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) -} - -export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint -} - -export type DomainEpoch = [DomainId, number] - -export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } -}) - -export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint -} - -export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author or rewards not enabled. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export type Public = Bytes - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -export type Slot = bigint - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export const Public = sts.bytes() - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const Slot = sts.bigint() - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const PotOutput = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type PotOutput = Bytes - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Signature = sts.bytes() - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export interface Scalar { - inner: Bytes -} - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const PieceOffset = sts.number() - -export const HistorySize = sts.bigint() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type PieceOffset = number - -export type HistorySize = bigint - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Signature = Bytes - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - } -}) - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } -}) - -export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } -}) - -export interface BlockInfo { - blockNumber: number - blockHash: H256 -} - -export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: ([BlockInfo, StorageProof] | undefined) - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export interface FeeModel { - relayFee: bigint -} - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - switch_domain: sts.enumStruct({ - operatorId: sts.bigint(), - newDomainId: DomainId, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::switch_domain`]. - */ -export interface DomainsCall_switch_domain { - __kind: 'switch_domain' - operatorId: bigint - newDomainId: DomainId -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} - -export const AccountId32 = sts.bytes() diff --git a/indexers/general-squid/src/types/v3.ts b/indexers/general-squid/src/types/v3.ts deleted file mode 100644 index 0eda7a4a7..000000000 --- a/indexers/general-squid/src/types/v3.ts +++ /dev/null @@ -1,2472 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface RewardPoint { - block: number - subsidy: bigint -} - -export interface DomainAllowlistUpdates { - allowChains: ChainId[] - removeChains: ChainId[] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel - maybeOwner?: (AccountId32 | undefined) -} - -export interface FeeModel { - relayFee: bigint -} - -export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open - -export interface ChannelState_Closed { - __kind: 'Closed' -} - -export interface ChannelState_Initiated { - __kind: 'Initiated' -} - -export interface ChannelState_Open { - __kind: 'Open' -} - -export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - maybeOwner: sts.option(() => AccountId32), - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export type DomainId = number - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type DomainEpoch = [DomainId, number] - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export interface HoldIdentifier_Messenger { - __kind: 'Messenger' - value: MessengerHoldIdentifier -} - -export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel - -export interface MessengerHoldIdentifier_Channel { - __kind: 'Channel' - value: [ChainId, bigint] -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - Messenger: MessengerHoldIdentifier, - } -}) - -export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Channel: sts.tuple(() => [ChainId, sts.bigint()]), - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } -}) - -export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { - return { - allowChains: sts.array(() => ChainId), - removeChains: sts.array(() => ChainId), - } -}) - -export const DomainId = sts.number() - -export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { - return { - Add: ChainId, - Remove: ChainId, - } -}) - -export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove - -export interface ChainAllowlistUpdate_Add { - __kind: 'Add' - value: ChainId -} - -export interface ChainAllowlistUpdate_Remove { - __kind: 'Remove' - value: ChainId -} - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export const Proof: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - messageProof: StorageProof, - }), - Domain: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - domainProof: StorageProof, - messageProof: StorageProof, - }), - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Type_237, - } -}) - -export const Type_237: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export interface Type_237 { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export type H256 = Bytes - -export const EncodableOpaqueLeaf = sts.bytes() - -export const H256 = sts.bytes() - -export interface ConsensusChainMmrLeafProof { - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Type_237 -} - -export type EncodableOpaqueLeaf = Bytes - -export type Proof = Proof_Consensus | Proof_Domain - -export interface Proof_Consensus { - __kind: 'Consensus' - consensusChainMmrProof: ConsensusChainMmrLeafProof - messageProof: StorageProof -} - -export interface Proof_Domain { - __kind: 'Domain' - consensusChainMmrProof: ConsensusChainMmrLeafProof - domainProof: StorageProof - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - Rewards: RewardsCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Signature = sts.bytes() - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export interface Scalar { - inner: Bytes -} - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const PieceOffset = sts.number() - -export const HistorySize = sts.bigint() - -export const Public = sts.bytes() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type PieceOffset = number - -export type HistorySize = bigint - -export type Public = Bytes - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Signature = Bytes - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RewardsCall: sts.Type = sts.closedEnum(() => { - return { - update_issuance_params: sts.enumStruct({ - proposerSubsidyPoints: sts.array(() => RewardPoint), - voterSubsidyPoints: sts.array(() => RewardPoint), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RewardsCall = RewardsCall_update_issuance_params - -/** - * See [`Pallet::update_issuance_params`]. - */ -export interface RewardsCall_update_issuance_params { - __kind: 'update_issuance_params' - proposerSubsidyPoints: RewardPoint[] - voterSubsidyPoints: RewardPoint[] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - initiate_domain_update_chain_allowlist: sts.enumStruct({ - domainId: DomainId, - update: ChainAllowlistUpdate, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - update_consensus_chain_allowlist: sts.enumStruct({ - update: ChainAllowlistUpdate, - }), - update_domain_allowlist: sts.enumStruct({ - updates: DomainAllowlistUpdates, - }), - } -}) - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_initiate_domain_update_chain_allowlist | MessengerCall_relay_message | MessengerCall_relay_message_response | MessengerCall_update_consensus_chain_allowlist | MessengerCall_update_domain_allowlist - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::initiate_domain_update_chain_allowlist`]. - */ -export interface MessengerCall_initiate_domain_update_chain_allowlist { - __kind: 'initiate_domain_update_chain_allowlist' - domainId: DomainId - update: ChainAllowlistUpdate -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::update_consensus_chain_allowlist`]. - */ -export interface MessengerCall_update_consensus_chain_allowlist { - __kind: 'update_consensus_chain_allowlist' - update: ChainAllowlistUpdate -} - -/** - * See [`Pallet::update_domain_allowlist`]. - */ -export interface MessengerCall_update_domain_allowlist { - __kind: 'update_domain_allowlist' - updates: DomainAllowlistUpdates -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_Rewards | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_Rewards { - __kind: 'Rewards' - value: RewardsCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} diff --git a/indexers/general-squid/src/types/v5.ts b/indexers/general-squid/src/types/v5.ts deleted file mode 100644 index f3bc79322..000000000 --- a/indexers/general-squid/src/types/v5.ts +++ /dev/null @@ -1,4370 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const Perbill = sts.number() - -export interface MessageWeightTags { - outbox: [[ChainId, [bigint, bigint]], MessageWeightTag][] - inboxResponses: [[ChainId, [bigint, bigint]], MessageWeightTag][] -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export const MessageWeightTags: sts.Type = sts.struct(() => { - return { - outbox: sts.array(() => sts.tuple(() => [sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), MessageWeightTag])), - inboxResponses: sts.array(() => sts.tuple(() => [sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), MessageWeightTag])), - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export interface DomainRuntimeUpgradeEntry { - atHash: H256 - referenceCount: number -} - -export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { - return { - atHash: H256, - referenceCount: sts.number(), - } -}) - -export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone - -export interface PermissionedActionAllowedBy_Accounts { - __kind: 'Accounts' - value: AccountId32[] -} - -export interface PermissionedActionAllowedBy_Anyone { - __kind: 'Anyone' -} - -export type AccountId32 = Bytes - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_AutoId { - __kind: 'AutoId' -} - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const AccountId32 = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm - -export interface RuntimeType_AutoId { - __kind: 'AutoId' -} - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author or rewards not enabled. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export type Public = Bytes - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_TotalIssuanceForced | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * The `TotalIssuance` was forcefully changed. - */ -export interface BalancesEvent_TotalIssuanceForced { - __kind: 'TotalIssuanceForced' - old: bigint - new: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export const Public = sts.bytes() - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - TotalIssuanceForced: sts.enumStruct({ - old: sts.bigint(), - new: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Type_251, - weightTag: MessageWeightTag, - } -}) - -export const Type_251: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - messageProof: StorageProof, - }), - Domain: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - domainProof: StorageProof, - messageProof: StorageProof, - }), - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Proof, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export interface Proof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export const EncodableOpaqueLeaf = sts.bytes() - -export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Proof -} - -export type EncodableOpaqueLeaf = Bytes - -export type Type_251 = Type_251_Consensus | Type_251_Domain - -export interface Type_251_Consensus { - __kind: 'Consensus' - consensusChainMmrProof: ConsensusChainMmrLeafProof - messageProof: StorageProof -} - -export interface Type_251_Domain { - __kind: 'Domain' - consensusChainMmrProof: ConsensusChainMmrLeafProof - domainProof: StorageProof - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Type_251 - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - } -}) - -export interface InitiateChannelParams { - maxOutgoingMessages: number -} - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { - return { - Accounts: sts.array(() => AccountId32), - Anyone: sts.unit(), - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export const Percent = sts.number() - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export type Percent = number - -export const DomainId = sts.number() - -export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } -}) - -export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } -}) - -export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } -}) - -export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface SuccessfulBundlesProof { - trieNodes: Bytes[] -} - -export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof -} - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export type PotOutput = Bytes - -export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface InvalidTransfersProof { - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } -}) - -export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, - } -}) - -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] -} - -export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] -} - -export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] -} - -export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), - } -}) - -export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] -} - -export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockDigestProof { - trieNodes: Bytes[] -} - -export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) -} - -export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface TimestampStorageProof { - trieNodes: Bytes[] -} - -export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof -} - -export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockRandomnessProof { - trieNodes: Bytes[] -} - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof -} - -export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } -}) - -export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - } -}) - -export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic - -export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof -} - -export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof -} - -export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof -} - -export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - storageProof: StorageProof -} - -export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle - -export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof -} - -export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } -}) - -export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof -} - -export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) - maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) - proof: FraudProofVariant -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export const PotOutput = sts.bytes() - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - Rewards: RewardsCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -export interface VestingCall_claim { - __kind: 'claim' -} - -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * Send a call through an indexed pseudonym of the sender. - * - * Filter from origin are passed along. The call will be dispatched with an origin which - * use the same filter as the origin of this call. - * - * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. - * because you expect `proxy` to have been used prior in the call stack and you do not want - * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` - * in the Multisig pallet instead. - * - * NOTE: Prior to version *12, this was called `as_limited_sub`. - * - * The dispatch origin for this call must be _Signed_. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * Send a batch of dispatch calls. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - * - * This will return `Ok` in all circumstances. To determine the success of the batch, an - * event is deposited. If a call failed and the batch was interrupted, then the - * `BatchInterrupted` event is deposited, along with the number of successful calls made - * and the error of the failed call. If all were successful, then the `BatchCompleted` - * event is deposited. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * Send a batch of dispatch calls and atomically execute them. - * The whole transaction will rollback and fail if any of the calls failed. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * Dispatches a function call with a provided origin. - * - * The dispatch origin for this call must be _Root_. - * - * ## Complexity - * - O(1). - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * Send a batch of dispatch calls. - * Unlike `batch`, it allows errors and won't interrupt. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatch without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * Dispatch a function call with a specified weight. - * - * This function does not check the weight of the call, and instead allows the - * Root origin to specify the weight of the call. - * - * The dispatch origin for this call must be _Root_. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * Initiates transfer of funds from account on src_chain to account on dst_chain. - * Funds are burned on src_chain first and are minted on dst_chain using Messenger. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * Set the current time. - * - * This call should be invoked exactly once per block. It will panic at the finalization - * phase, if this call hasn't been invoked by that time. - * - * The timestamp should be greater than the previous one by the amount specified by - * [`Config::MinimumPeriod`]. - * - * The dispatch origin for this call must be _None_. - * - * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware - * that changing the complexity of this call could result exhausting the resources in a - * block to execute any other calls. - * - * ## Complexity - * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) - * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in - * `on_finalize`) - * - 1 event handler `on_timestamp_set`. Must be `O(1)`. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. - * - * If the authorization required a version check, this call will ensure the spec name - * remains unchanged and that the spec version has increased. - * - * Depending on the runtime's `OnSetCode` configuration, this function may directly apply - * the new `code` in the same block or attempt to schedule the upgrade. - * - * All origins are allowed. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * This call requires Root origin. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * WARNING: This authorizes an upgrade that will take place without any safety checks, for - * example that the spec name remains the same and that the version number increases. Not - * recommended for normal use. Use `authorize_upgrade` instead. - * - * This call requires Root origin. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * Kill all storage items with a key that starts with the given prefix. - * - * **NOTE:** We rely on the Root origin to provide us the number of subkeys under - * the prefix we are removing to accurately calculate the weight of this function. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * Kill some items from storage. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * Make some on-chain remark. - * - * Can be executed by every `origin`. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * Make some on-chain remark and emit event. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * Set the new runtime code. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * Set the new runtime code without doing any checks of the given `code`. - * - * Note that runtime upgrades will not run if this is called with a not-increasing spec - * version! - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * Set the number of pages in the WebAssembly environment's heap. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * Set some items of storage. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * Permanently removes the sudo key. - * - * **This cannot be un-done.** - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo - * key. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * Authenticates the sudo key and dispatches a function call with `Signed` origin from - * a given account. - * - * The dispatch origin for this call must be _Signed_. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - * This function does not check the weight of the call, and instead allows the - * Sudo user to specify the weight of the call. - * - * The dispatch origin for this call must be _Signed_. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Signature = sts.bytes() - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export interface Scalar { - inner: Bytes -} - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const PieceOffset = sts.number() - -export const HistorySize = sts.bigint() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type PieceOffset = number - -export type HistorySize = bigint - -export const Slot = sts.bigint() - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type Slot = bigint - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Signature = Bytes - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * Enable storage access for all users. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * Enable rewards for blocks and votes at specified block height. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * Enable solution range adjustment after every era. - * Note: No effect on the solution range for the current era - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * Report farmer equivocation/misbehavior. This method will verify the equivocation proof. - * If valid, the offence will be reported. - * - * This extrinsic must be called unsigned and it is expected that only block authors will - * call it (validated in `ValidateUnsigned`), as such if the block author is defined it - * will be defined as the equivocation reporter. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * Submit new segment header to the blockchain. This is an inherent extrinsic and part of - * the Subspace consensus logic. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * Farmer vote, currently only used for extra rewards to farmers. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * Enable or disable balance transfers for all users. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * Change enable domains state. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * Enable or disable dynamic cost of storage. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * Enable or disable calls from non-root users. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RewardsCall: sts.Type = sts.closedEnum(() => { - return { - update_issuance_params: sts.enumStruct({ - proposerSubsidyPoints: sts.array(() => RewardPoint), - voterSubsidyPoints: sts.array(() => RewardPoint), - }), - } -}) - -export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } -}) - -export interface RewardPoint { - block: number - subsidy: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RewardsCall = RewardsCall_update_issuance_params - -/** - * Update dynamic issuance parameters - */ -export interface RewardsCall_update_issuance_params { - __kind: 'update_issuance_params' - proposerSubsidyPoints: RewardPoint[] - voterSubsidyPoints: RewardPoint[] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - initiate_domain_update_chain_allowlist: sts.enumStruct({ - domainId: DomainId, - update: ChainAllowlistUpdate, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - update_consensus_chain_allowlist: sts.enumStruct({ - update: ChainAllowlistUpdate, - }), - update_domain_allowlist: sts.enumStruct({ - updates: DomainAllowlistUpdates, - }), - } -}) - -export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { - return { - allowChains: sts.array(() => ChainId), - removeChains: sts.array(() => ChainId), - } -}) - -export interface DomainAllowlistUpdates { - allowChains: ChainId[] - removeChains: ChainId[] -} - -export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { - return { - Add: ChainId, - Remove: ChainId, - } -}) - -export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove - -export interface ChainAllowlistUpdate_Add { - __kind: 'Add' - value: ChainId -} - -export interface ChainAllowlistUpdate_Remove { - __kind: 'Remove' - value: ChainId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_initiate_domain_update_chain_allowlist | MessengerCall_relay_message | MessengerCall_relay_message_response | MessengerCall_update_consensus_chain_allowlist | MessengerCall_update_domain_allowlist - -/** - * An open channel is closed with a foreign chain. - * Channel is set to Closed and do not accept or receive any messages. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * A new Channel is initiated with a foreign chain. - * Next Channel ID is used to assign the new channel. - * Channel is set to initiated and do not accept or receive any messages. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * A call to initiate chain allowlist update on domains - */ -export interface MessengerCall_initiate_domain_update_chain_allowlist { - __kind: 'initiate_domain_update_chain_allowlist' - domainId: DomainId - update: ChainAllowlistUpdate -} - -/** - * Receives an Inbox message that needs to be validated and processed. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * Receives a response from the dst_chain for a message in Outbox. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * A call to update consensus chain allow list. - */ -export interface MessengerCall_update_consensus_chain_allowlist { - __kind: 'update_consensus_chain_allowlist' - update: ChainAllowlistUpdate -} - -/** - * An inherent call to update allowlist for domain. - */ -export interface MessengerCall_update_domain_allowlist { - __kind: 'update_domain_allowlist' - updates: DomainAllowlistUpdates -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }), - set_permissioned_action_allowed_by: sts.enumStruct({ - permissionedActionAllowedBy: PermissionedActionAllowedBy, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_nominator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_set_permissioned_action_allowed_by | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_unlock_funds | DomainsCall_unlock_nominator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * Force staking epoch transition for a given domain - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig - signingKeyProofOfOwnership: Bytes -} - -/** - * Update permissioned action allowed by storage by Sudo. - */ -export interface DomainsCall_set_permissioned_action_allowed_by { - __kind: 'set_permissioned_action_allowed_by' - permissionedActionAllowedBy: PermissionedActionAllowedBy -} - -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * Unlocks the first withdrawal given the unlocking period is complete. - * Even if rest of the withdrawals are out of unlocking period, nominator - * should call this extrinsic to unlock each withdrawal - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ -export interface DomainsCall_unlock_nominator { - __kind: 'unlock_nominator' - operatorId: bigint -} - -/** - * Extrinsic to update domain's operator allow list. - * Note: - * - If the previous allowed list is set to specific operators and new allow list is set - * to `Anyone`, then domain will become permissioned to open for all operators. - * - If the previous allowed list is set to `Anyone` or specific operators and the new - * allow list is set to specific operators, then all the registered not allowed operators - * will continue to operate until they de-register themselves. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_adjust_total_issuance: sts.enumStruct({ - direction: AdjustmentDirection, - delta: sts.bigint(), - }), - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_adjust_total_issuance | BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - */ -export interface BalancesCall_force_adjust_total_issuance { - __kind: 'force_adjust_total_issuance' - direction: AdjustmentDirection - delta: bigint -} - -/** - * Set the regular balance of a given account. - * - * The dispatch origin for this call is `root`. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * Exactly as `transfer_allow_death`, except the origin must be root and the source account - * may be specified. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * Unreserve some balance from a user by force. - * - * Can only be called by ROOT. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * Transfer the entire transferable balance from the caller account. - * - * NOTE: This function only attempts to transfer _transferable_ balances. This means that - * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be - * transferred by this function. To ensure that this function results in a killed account, - * you might need to prepare the account by removing any reference counters, storage - * deposits, etc... - * - * The dispatch origin of this call must be Signed. - * - * - `dest`: The recipient of the transfer. - * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all - * of the funds the account has, causing the sender account to be killed (false), or - * transfer everything except at least the existential deposit, which will guarantee to - * keep the sender account alive (true). - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * Transfer some liquid free balance to another account. - * - * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. - * If the sender's account is below the existential deposit as a result - * of the transfer, the account will be reaped. - * - * The dispatch origin for this call must be `Signed` by the transactor. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not - * kill the origin account. - * - * 99% of the time you want [`transfer_allow_death`] instead. - * - * [`transfer_allow_death`]: struct.Pallet.html#method.transfer - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * Upgrade a specified account. - * - * - `origin`: Must be `Signed`. - * - `who`: The account to be upgraded. - * - * This will waive the transaction fee if at least all but 10% of the accounts needed to - * be upgraded. (We let some not have to be upgraded just in order to allow for the - * possibility of churn). - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type AdjustmentDirection = AdjustmentDirection_Decrease | AdjustmentDirection_Increase - -export interface AdjustmentDirection_Decrease { - __kind: 'Decrease' -} - -export interface AdjustmentDirection_Increase { - __kind: 'Increase' -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_Rewards | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_Rewards { - __kind: 'Rewards' - value: RewardsCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} - -export const AdjustmentDirection: sts.Type = sts.closedEnum(() => { - return { - Decrease: sts.unit(), - Increase: sts.unit(), - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - InvalidBundle: sts.number(), - } -}) - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } -}) diff --git a/indexers/general-squid/tsconfig.json b/indexers/general-squid/tsconfig.json deleted file mode 100644 index 3b8340342..000000000 --- a/indexers/general-squid/tsconfig.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "target": "es2020", - "outDir": "lib", - "rootDir": "src", - "strict": true, - "declaration": false, - "sourceMap": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "skipLibCheck": true, - "resolveJsonModule": true - }, - "include": ["src"], - "exclude": ["node_modules"] -} diff --git a/indexers/general-squid/typegen.json b/indexers/general-squid/typegen.json deleted file mode 100644 index 17eca73b8..000000000 --- a/indexers/general-squid/typegen.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "outDir": "src/types", - "specVersions": "gemini3h.jsonl", - "pallets": { - "System": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Utility": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Timestamp": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "TransactionFees": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Balances": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Domains": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Rewards": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Messenger": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Subspace": { - "events": true, - "calls": true, - "storage": true, - "constants": true - } - } -} diff --git a/indexers/leaderboard-squid/.dockerignore b/indexers/leaderboard-squid/.dockerignore deleted file mode 100644 index 27c983bc0..000000000 --- a/indexers/leaderboard-squid/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -/.git -/node_modules -/lib -/*Versions.jsonl diff --git a/indexers/leaderboard-squid/.env b/indexers/leaderboard-squid/.env index 3b0d41842..8c1e8bdf3 100644 --- a/indexers/leaderboard-squid/.env +++ b/indexers/leaderboard-squid/.env @@ -1,6 +1,8 @@ -DB_NAME=squid -DB_NAME=leaderboard-squid -DB_PORT=23798 +DB_URL=postgres://postgres:postgres@localhost:5432/leaderboard + +## Uncoment to use the db and docker from this workspaceDB_NAME=squid +# DB_NAME=leaderboard-squid +# DB_PORT=23798 GQL_PORT=4350 RPC_CONSENSUS_HTTP=wss://rpc-0.gemini-3h.subspace.network/ws diff --git a/indexers/leaderboard-squid/.gitignore b/indexers/leaderboard-squid/.gitignore index 263e67075..b7db6c18c 100644 --- a/indexers/leaderboard-squid/.gitignore +++ b/indexers/leaderboard-squid/.gitignore @@ -8,4 +8,7 @@ # IDE files /.idea -/src/model/generated/ \ No newline at end of file +/db/ +/migrations/ +/src/model/ +/src/types/ \ No newline at end of file diff --git a/indexers/leaderboard-squid/.prettierrc b/indexers/leaderboard-squid/.prettierrc new file mode 100644 index 000000000..49debf44c --- /dev/null +++ b/indexers/leaderboard-squid/.prettierrc @@ -0,0 +1,10 @@ +{ + "semi": false, + "tabWidth": 2, + "printWidth": 100, + "singleQuote": true, + "trailingComma": "all", + "jsxSingleQuote": true, + "bracketSpacing": true, + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/indexers/leaderboard-squid/db/migrations/1723206699043-Data.js b/indexers/leaderboard-squid/db/migrations/1723206699043-Data.js deleted file mode 100644 index d275b3dc1..000000000 --- a/indexers/leaderboard-squid/db/migrations/1723206699043-Data.js +++ /dev/null @@ -1,105 +0,0 @@ -module.exports = class Data1723206699043 { - name = 'Data1723206699043' - - async up(db) { - await db.query(`CREATE TABLE "account_transfer_sender_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_e552546f78849e8eab40a2abe00" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_7f58bc1e58c474d506a3226011" ON "account_transfer_sender_total_count" ("rank") `) - await db.query(`CREATE TABLE "account_transfer_sender_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_f9289e86e0a038c9a7f0ffd31bb" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_c0ebb1a829725be0740f452cdd" ON "account_transfer_sender_total_value" ("rank") `) - await db.query(`CREATE TABLE "account_transfer_receiver_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_8c4fe4f4df0c2fe09f4add91dc1" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_b96fa4f9f854baf4964b94c569" ON "account_transfer_receiver_total_count" ("rank") `) - await db.query(`CREATE TABLE "account_transfer_receiver_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_74b1219748b0947e2c01869330f" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_1b077103b1bc5a17af2f4a064f" ON "account_transfer_receiver_total_value" ("rank") `) - await db.query(`CREATE TABLE "account_remark_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_84b4f048b6b0cfe0a91928e3c56" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_935f40ea89724b633a624a746f" ON "account_remark_count" ("rank") `) - await db.query(`CREATE TABLE "account_extrinsic_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_2d4d99f8fd71e09782e04ce6383" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_d5e333e50391ebf70cf6bd8ea2" ON "account_extrinsic_total_count" ("rank") `) - await db.query(`CREATE TABLE "account_extrinsic_success_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_6347e36b6dab52598920f2bf6d5" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_1fde147e099f5aaf89014b2637" ON "account_extrinsic_success_total_count" ("rank") `) - await db.query(`CREATE TABLE "account_extrinsic_failed_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_ad0f35e57a01949e40173e09fc0" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_669715a47deb663bbb401be0e1" ON "account_extrinsic_failed_total_count" ("rank") `) - await db.query(`CREATE TABLE "account_transaction_fee_paid_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_575c98d771f13f9679578f5b9d7" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_e760a5a18d06dce57c6a7cd2d3" ON "account_transaction_fee_paid_total_value" ("rank") `) - await db.query(`CREATE TABLE "farmer_vote_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_918f8e2d8e59a98268ff9b90091" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_4a9dea9ace21c771d6009945cc" ON "farmer_vote_total_count" ("rank") `) - await db.query(`CREATE TABLE "farmer_vote_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_d0d5a314e74587ba1d363abada8" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_38d89f81ab4a9be6af12f20645" ON "farmer_vote_total_value" ("rank") `) - await db.query(`CREATE TABLE "farmer_block_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_e95044f1288e5ed17d5afbb8d9d" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_08887941b347373a2a7df8cf46" ON "farmer_block_total_count" ("rank") `) - await db.query(`CREATE TABLE "farmer_block_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_9ec5ca1a42210d4b6b81b2c3767" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_88601e3f9c9d6232e3aa8dfeec" ON "farmer_block_total_value" ("rank") `) - await db.query(`CREATE TABLE "farmer_vote_and_block_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_2ddfe1f33054ae3e6f0bc1d169b" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_04f9498f5fb7816da89ce6b74b" ON "farmer_vote_and_block_total_count" ("rank") `) - await db.query(`CREATE TABLE "farmer_vote_and_block_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_c5e84d1cbe6d35a2be27dce2687" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_2caffb1ea17ff11bce5324149c" ON "farmer_vote_and_block_total_value" ("rank") `) - await db.query(`CREATE TABLE "operator_total_rewards_collected" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_d508f86eb381e877ab636102aac" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_22eff26301c07eb9bdc693b68e" ON "operator_total_rewards_collected" ("rank") `) - await db.query(`CREATE TABLE "operator_total_tax_collected" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_ac699d330bc0ddf2c1abe2af16b" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_e87316f3b214f8c2a5390cc290" ON "operator_total_tax_collected" ("rank") `) - await db.query(`CREATE TABLE "operator_bundle_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_8da0332f9c5fe77654da1ac45aa" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_28690a9d38a0f3e8241e1b0654" ON "operator_bundle_total_count" ("rank") `) - await db.query(`CREATE TABLE "operator_deposits_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_23ecf13a9c3b7660aafd3482a6a" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_1f136e1778fa9bf9862c82237d" ON "operator_deposits_total_count" ("rank") `) - await db.query(`CREATE TABLE "operator_deposits_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_1aafd1c19361ddaf43b519bb9a2" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_3271ed16cd7ec517f880c2b773" ON "operator_deposits_total_value" ("rank") `) - await db.query(`CREATE TABLE "operator_withdrawals_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_bb81061cc6ab3d65e5c831a3657" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_d2601198dd7c01836974664500" ON "operator_withdrawals_total_count" ("rank") `) - await db.query(`CREATE TABLE "nominator_deposits_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_4c569d7d27fe43e38f5588ba246" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_ff57ac3aa1a0ef318b3a53ca0c" ON "nominator_deposits_total_count" ("rank") `) - await db.query(`CREATE TABLE "nominator_deposits_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_4a95edc83e860d25aaa76a03e68" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_0a7603f976cedf076553398356" ON "nominator_deposits_total_value" ("rank") `) - await db.query(`CREATE TABLE "nominator_withdrawals_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_e983c41d64d1945553ae30a805d" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_3ceb44a26459c1c319442e02cb" ON "nominator_withdrawals_total_count" ("rank") `) - } - - async down(db) { - await db.query(`DROP TABLE "account_transfer_sender_total_count"`) - await db.query(`DROP INDEX "public"."IDX_7f58bc1e58c474d506a3226011"`) - await db.query(`DROP TABLE "account_transfer_sender_total_value"`) - await db.query(`DROP INDEX "public"."IDX_c0ebb1a829725be0740f452cdd"`) - await db.query(`DROP TABLE "account_transfer_receiver_total_count"`) - await db.query(`DROP INDEX "public"."IDX_b96fa4f9f854baf4964b94c569"`) - await db.query(`DROP TABLE "account_transfer_receiver_total_value"`) - await db.query(`DROP INDEX "public"."IDX_1b077103b1bc5a17af2f4a064f"`) - await db.query(`DROP TABLE "account_remark_count"`) - await db.query(`DROP INDEX "public"."IDX_935f40ea89724b633a624a746f"`) - await db.query(`DROP TABLE "account_extrinsic_total_count"`) - await db.query(`DROP INDEX "public"."IDX_d5e333e50391ebf70cf6bd8ea2"`) - await db.query(`DROP TABLE "account_extrinsic_success_total_count"`) - await db.query(`DROP INDEX "public"."IDX_1fde147e099f5aaf89014b2637"`) - await db.query(`DROP TABLE "account_extrinsic_failed_total_count"`) - await db.query(`DROP INDEX "public"."IDX_669715a47deb663bbb401be0e1"`) - await db.query(`DROP TABLE "account_transaction_fee_paid_total_value"`) - await db.query(`DROP INDEX "public"."IDX_e760a5a18d06dce57c6a7cd2d3"`) - await db.query(`DROP TABLE "farmer_vote_total_count"`) - await db.query(`DROP INDEX "public"."IDX_4a9dea9ace21c771d6009945cc"`) - await db.query(`DROP TABLE "farmer_vote_total_value"`) - await db.query(`DROP INDEX "public"."IDX_38d89f81ab4a9be6af12f20645"`) - await db.query(`DROP TABLE "farmer_block_total_count"`) - await db.query(`DROP INDEX "public"."IDX_08887941b347373a2a7df8cf46"`) - await db.query(`DROP TABLE "farmer_block_total_value"`) - await db.query(`DROP INDEX "public"."IDX_88601e3f9c9d6232e3aa8dfeec"`) - await db.query(`DROP TABLE "farmer_vote_and_block_total_count"`) - await db.query(`DROP INDEX "public"."IDX_04f9498f5fb7816da89ce6b74b"`) - await db.query(`DROP TABLE "farmer_vote_and_block_total_value"`) - await db.query(`DROP INDEX "public"."IDX_2caffb1ea17ff11bce5324149c"`) - await db.query(`DROP TABLE "operator_total_rewards_collected"`) - await db.query(`DROP INDEX "public"."IDX_22eff26301c07eb9bdc693b68e"`) - await db.query(`DROP TABLE "operator_total_tax_collected"`) - await db.query(`DROP INDEX "public"."IDX_e87316f3b214f8c2a5390cc290"`) - await db.query(`DROP TABLE "operator_bundle_total_count"`) - await db.query(`DROP INDEX "public"."IDX_28690a9d38a0f3e8241e1b0654"`) - await db.query(`DROP TABLE "operator_deposits_total_count"`) - await db.query(`DROP INDEX "public"."IDX_1f136e1778fa9bf9862c82237d"`) - await db.query(`DROP TABLE "operator_deposits_total_value"`) - await db.query(`DROP INDEX "public"."IDX_3271ed16cd7ec517f880c2b773"`) - await db.query(`DROP TABLE "operator_withdrawals_total_count"`) - await db.query(`DROP INDEX "public"."IDX_d2601198dd7c01836974664500"`) - await db.query(`DROP TABLE "nominator_deposits_total_count"`) - await db.query(`DROP INDEX "public"."IDX_ff57ac3aa1a0ef318b3a53ca0c"`) - await db.query(`DROP TABLE "nominator_deposits_total_value"`) - await db.query(`DROP INDEX "public"."IDX_0a7603f976cedf076553398356"`) - await db.query(`DROP TABLE "nominator_withdrawals_total_count"`) - await db.query(`DROP INDEX "public"."IDX_3ceb44a26459c1c319442e02cb"`) - } -} diff --git a/indexers/leaderboard-squid/docker-compose.yml b/indexers/leaderboard-squid/docker-compose.yml deleted file mode 100644 index 30e794433..000000000 --- a/indexers/leaderboard-squid/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -version: "3" - -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: leaderboard-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "${DB_PORT}:5432" - # command: ["postgres", "-c", "log_statement=all"] -# volumes: -# - ./data/db:/var/lib/postgresql/data - diff --git a/indexers/leaderboard-squid/package.json b/indexers/leaderboard-squid/package.json index 79045f065..20cc3046e 100644 --- a/indexers/leaderboard-squid/package.json +++ b/indexers/leaderboard-squid/package.json @@ -1,13 +1,10 @@ { "name": "leaderboard-squid", + "version": "1.0.0", "private": true, "engines": { "node": ">=16" }, - "scripts": { - "build": "rm -rf lib && tsc", - "deploy": "sqd deploy --org autonomys-labs ." - }, "repository": { "type": "git", "url": "https://github.com/autonomys/astral" @@ -16,6 +13,18 @@ "name": "Autonomys", "url": "https://www.autonomys.xyz" }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, + "scripts": { + "typegen": "sqd typegen", + "codegen": "sqd codegen", + "migration": "sqd migration:generate", + "build": "rm -rf lib && tsc", + "process": "sqd process", + "deploy": "sqd deploy --org autonomys-labs .", + "format": "prettier --write 'src/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc" + }, "dependencies": { "@autonomys/auto-consensus": "^0.2.0", "@autonomys/auto-utils": "^0.2.0", @@ -32,6 +41,7 @@ "@subsquid/substrate-metadata-explorer": "^3.1.2", "@subsquid/substrate-typegen": "^8.1.0", "@subsquid/typeorm-codegen": "^2.0.0", + "@subsquid/substrate-runtime": "^2.0.0", "@types/node": "^20.12.7", "typescript": "^5.4.5" } diff --git a/indexers/leaderboard-squid/scripts/docker-run.sh b/indexers/leaderboard-squid/scripts/docker-run.sh deleted file mode 100644 index 1947733d9..000000000 --- a/indexers/leaderboard-squid/scripts/docker-run.sh +++ /dev/null @@ -1,5 +0,0 @@ -set -e -docker build . --target processor -t squid-processor -# make sure the port matches .env. -# For Linux, add --add-host=host.docker.internal:host-gateway -docker run --rm -e DB_HOST=host.docker.internal --env-file=.env squid-processor \ No newline at end of file diff --git a/indexers/leaderboard-squid/src/blocks/index.ts b/indexers/leaderboard-squid/src/blocks/index.ts index fa8db3afe..2e3fe6484 100644 --- a/indexers/leaderboard-squid/src/blocks/index.ts +++ b/indexers/leaderboard-squid/src/blocks/index.ts @@ -1,20 +1,20 @@ -import type { ApiPromise } from "@autonomys/auto-utils"; -import { Store } from "@subsquid/typeorm-store"; -import { processEvents } from "../events"; -import type { Ctx, CtxBlock } from "../processor"; -import { logBlock } from "../utils"; -import { Cache, load, save } from "../utils/cache"; -import { sort } from "../utils/sort"; +import type { ApiPromise } from '@autonomys/auto-utils' +import { Store } from '@subsquid/typeorm-store' +import { processEvents } from '../events' +import type { Ctx, CtxBlock } from '../processor' +import { logBlock } from '../utils' +import { Cache, load, save } from '../utils/cache' +import { sort } from '../utils/sort' export async function processBlocks(ctx: Ctx, api: ApiPromise) { - let cache: Cache = await load(ctx); - logBlock(ctx.blocks); + let cache: Cache = await load(ctx) + logBlock(ctx.blocks) for (let block of ctx.blocks) { - cache = await processBlock(cache, api, block); + cache = await processBlock(cache, api, block) } - await save(ctx, sort(cache)); + await save(ctx, sort(cache)) } async function processBlock(cache: Cache, api: ApiPromise, block: CtxBlock) { - return await processEvents(cache, api, block, block.events); + return await processEvents(cache, api, block, block.events) } diff --git a/indexers/leaderboard-squid/src/events/account.ts b/indexers/leaderboard-squid/src/events/account.ts index c65ff8ee7..73b1dd8ea 100644 --- a/indexers/leaderboard-squid/src/events/account.ts +++ b/indexers/leaderboard-squid/src/events/account.ts @@ -1,108 +1,103 @@ -import type { CtxBlock, CtxEvent } from "../processor"; +import type { CtxBlock, CtxEvent } from '../processor' import { getOrCreateAccountRemarkCount, getOrCreateAccountTransferReceiverTotalCount, getOrCreateAccountTransferReceiverTotalValue, getOrCreateAccountTransferSenderTotalCount, getOrCreateAccountTransferSenderTotalValue, -} from "../storage/account"; -import { - getBlockNumber, - getExtrinsicSigner, - getTimestamp, - hexToAccount, -} from "../utils"; -import { Cache } from "../utils/cache"; - -export function processTransferEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const from = hexToAccount(event.args.from); - const to = hexToAccount(event.args.to); - const amount = BigInt(event.args.amount); - - const accountTransferSenderTotalCount = - getOrCreateAccountTransferSenderTotalCount(cache, block, from); - - accountTransferSenderTotalCount.value++; - accountTransferSenderTotalCount.lastContributionAt = getTimestamp(block); - accountTransferSenderTotalCount.updatedAt = getBlockNumber(block); +} from '../storage/account' +import { getBlockNumber, getExtrinsicSigner, getTimestamp, hexToAccount } from '../utils' +import { Cache } from '../utils/cache' + +export function processTransferEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const from = hexToAccount(event.args.from) + const to = hexToAccount(event.args.to) + const amount = BigInt(event.args.amount) + + const accountTransferSenderTotalCount = getOrCreateAccountTransferSenderTotalCount( + cache, + block, + from, + ) + + accountTransferSenderTotalCount.value++ + accountTransferSenderTotalCount.lastContributionAt = getTimestamp(block) + accountTransferSenderTotalCount.updatedAt = getBlockNumber(block) cache.accountTransferSenderTotalCount.set( accountTransferSenderTotalCount.id, - accountTransferSenderTotalCount - ); + accountTransferSenderTotalCount, + ) - const accountTransferSenderTotalValue = - getOrCreateAccountTransferSenderTotalValue(cache, block, from); + const accountTransferSenderTotalValue = getOrCreateAccountTransferSenderTotalValue( + cache, + block, + from, + ) - accountTransferSenderTotalValue.value += amount; - accountTransferSenderTotalValue.lastContributionAt = getTimestamp(block); - accountTransferSenderTotalValue.updatedAt = getBlockNumber(block); + accountTransferSenderTotalValue.value += amount + accountTransferSenderTotalValue.lastContributionAt = getTimestamp(block) + accountTransferSenderTotalValue.updatedAt = getBlockNumber(block) cache.accountTransferSenderTotalValue.set( accountTransferSenderTotalValue.id, - accountTransferSenderTotalValue - ); + accountTransferSenderTotalValue, + ) - const accountTransferReceiverTotalCount = - getOrCreateAccountTransferReceiverTotalCount(cache, block, to); + const accountTransferReceiverTotalCount = getOrCreateAccountTransferReceiverTotalCount( + cache, + block, + to, + ) - accountTransferReceiverTotalCount.value++; - accountTransferReceiverTotalCount.lastContributionAt = getTimestamp(block); - accountTransferReceiverTotalCount.updatedAt = getBlockNumber(block); + accountTransferReceiverTotalCount.value++ + accountTransferReceiverTotalCount.lastContributionAt = getTimestamp(block) + accountTransferReceiverTotalCount.updatedAt = getBlockNumber(block) cache.accountTransferReceiverTotalCount.set( accountTransferReceiverTotalCount.id, - accountTransferReceiverTotalCount - ); + accountTransferReceiverTotalCount, + ) - const accountTransferReceiverTotalValue = - getOrCreateAccountTransferReceiverTotalValue(cache, block, to); + const accountTransferReceiverTotalValue = getOrCreateAccountTransferReceiverTotalValue( + cache, + block, + to, + ) - accountTransferReceiverTotalValue.value += amount; - accountTransferReceiverTotalValue.lastContributionAt = getTimestamp(block); - accountTransferReceiverTotalValue.updatedAt = getBlockNumber(block); + accountTransferReceiverTotalValue.value += amount + accountTransferReceiverTotalValue.lastContributionAt = getTimestamp(block) + accountTransferReceiverTotalValue.updatedAt = getBlockNumber(block) cache.accountTransferReceiverTotalValue.set( accountTransferReceiverTotalValue.id, - accountTransferReceiverTotalValue - ); + accountTransferReceiverTotalValue, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processRemarkEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const extrinsicIndex = event.extrinsicIndex ?? 0; - const extrinsic = block.extrinsics[extrinsicIndex]; +export function processRemarkEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const extrinsicIndex = event.extrinsicIndex ?? 0 + const extrinsic = block.extrinsics[extrinsicIndex] // exit if extrinsic has no signature - if (!extrinsic.signature) return cache; + if (!extrinsic.signature) return cache - const accountId = getExtrinsicSigner(extrinsic); - console.log("accountId", accountId); + const accountId = getExtrinsicSigner(extrinsic) + console.log('accountId', accountId) - const accountRemarkCount = getOrCreateAccountRemarkCount( - cache, - block, - accountId - ); + const accountRemarkCount = getOrCreateAccountRemarkCount(cache, block, accountId) - accountRemarkCount.value++; - accountRemarkCount.lastContributionAt = getTimestamp(block); - accountRemarkCount.updatedAt = getBlockNumber(block); + accountRemarkCount.value++ + accountRemarkCount.lastContributionAt = getTimestamp(block) + accountRemarkCount.updatedAt = getBlockNumber(block) - cache.accountRemarkCount.set(accountRemarkCount.id, accountRemarkCount); + cache.accountRemarkCount.set(accountRemarkCount.id, accountRemarkCount) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/leaderboard-squid/src/events/extrinsic.ts b/indexers/leaderboard-squid/src/events/extrinsic.ts index c0c69d9a0..278124589 100644 --- a/indexers/leaderboard-squid/src/events/extrinsic.ts +++ b/indexers/leaderboard-squid/src/events/extrinsic.ts @@ -1,96 +1,80 @@ -import type { CtxBlock, CtxEvent } from "../processor"; +import type { CtxBlock, CtxEvent } from '../processor' import { getOrCreateAccountExtrinsicFailedTotalCount, getOrCreateAccountExtrinsicSuccessTotalCount, getOrCreateAccountExtrinsicTotalCount, -} from "../storage/account"; -import { getBlockNumber, getExtrinsicSigner, getTimestamp } from "../utils"; -import { Cache } from "../utils/cache"; - -export function processExtrinsicSuccessEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const extrinsicIndex = event.extrinsicIndex ?? 0; - const extrinsic = block.extrinsics[extrinsicIndex]; +} from '../storage/account' +import { getBlockNumber, getExtrinsicSigner, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' + +export function processExtrinsicSuccessEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const extrinsicIndex = event.extrinsicIndex ?? 0 + const extrinsic = block.extrinsics[extrinsicIndex] // exit if extrinsic has no signature - if (!extrinsic.signature) return cache; + if (!extrinsic.signature) return cache - const accountId = getExtrinsicSigner(extrinsic); - const accountExtrinsicTotalCount = getOrCreateAccountExtrinsicTotalCount( - cache, - block, - accountId - ); + const accountId = getExtrinsicSigner(extrinsic) + const accountExtrinsicTotalCount = getOrCreateAccountExtrinsicTotalCount(cache, block, accountId) - accountExtrinsicTotalCount.value++; - accountExtrinsicTotalCount.lastContributionAt = getTimestamp(block); - accountExtrinsicTotalCount.updatedAt = getBlockNumber(block); + accountExtrinsicTotalCount.value++ + accountExtrinsicTotalCount.lastContributionAt = getTimestamp(block) + accountExtrinsicTotalCount.updatedAt = getBlockNumber(block) - cache.accountExtrinsicTotalCount.set( - accountExtrinsicTotalCount.id, - accountExtrinsicTotalCount - ); + cache.accountExtrinsicTotalCount.set(accountExtrinsicTotalCount.id, accountExtrinsicTotalCount) - const accountExtrinsicSuccessTotalCount = - getOrCreateAccountExtrinsicSuccessTotalCount(cache, block, accountId); + const accountExtrinsicSuccessTotalCount = getOrCreateAccountExtrinsicSuccessTotalCount( + cache, + block, + accountId, + ) - accountExtrinsicSuccessTotalCount.value++; - accountExtrinsicSuccessTotalCount.lastContributionAt = getTimestamp(block); - accountExtrinsicSuccessTotalCount.updatedAt = getBlockNumber(block); + accountExtrinsicSuccessTotalCount.value++ + accountExtrinsicSuccessTotalCount.lastContributionAt = getTimestamp(block) + accountExtrinsicSuccessTotalCount.updatedAt = getBlockNumber(block) cache.accountExtrinsicSuccessTotalCount.set( accountExtrinsicSuccessTotalCount.id, - accountExtrinsicSuccessTotalCount - ); + accountExtrinsicSuccessTotalCount, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processExtrinsicFailedEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const extrinsicIndex = event.extrinsicIndex ?? 0; - const extrinsic = block.extrinsics[extrinsicIndex]; +export function processExtrinsicFailedEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const extrinsicIndex = event.extrinsicIndex ?? 0 + const extrinsic = block.extrinsics[extrinsicIndex] // exit if extrinsic has no signature - if (!extrinsic.signature) return cache; + if (!extrinsic.signature) return cache - const accountId = getExtrinsicSigner(extrinsic); - const accountExtrinsicTotalCount = getOrCreateAccountExtrinsicTotalCount( - cache, - block, - accountId - ); + const accountId = getExtrinsicSigner(extrinsic) + const accountExtrinsicTotalCount = getOrCreateAccountExtrinsicTotalCount(cache, block, accountId) - accountExtrinsicTotalCount.value++; - accountExtrinsicTotalCount.lastContributionAt = getTimestamp(block); - accountExtrinsicTotalCount.updatedAt = getBlockNumber(block); + accountExtrinsicTotalCount.value++ + accountExtrinsicTotalCount.lastContributionAt = getTimestamp(block) + accountExtrinsicTotalCount.updatedAt = getBlockNumber(block) - cache.accountExtrinsicTotalCount.set( - accountExtrinsicTotalCount.id, - accountExtrinsicTotalCount - ); + cache.accountExtrinsicTotalCount.set(accountExtrinsicTotalCount.id, accountExtrinsicTotalCount) - const accountExtrinsicFailedTotalCount = - getOrCreateAccountExtrinsicFailedTotalCount(cache, block, accountId); + const accountExtrinsicFailedTotalCount = getOrCreateAccountExtrinsicFailedTotalCount( + cache, + block, + accountId, + ) - accountExtrinsicFailedTotalCount.value++; - accountExtrinsicFailedTotalCount.lastContributionAt = getTimestamp(block); - accountExtrinsicFailedTotalCount.updatedAt = getBlockNumber(block); + accountExtrinsicFailedTotalCount.value++ + accountExtrinsicFailedTotalCount.lastContributionAt = getTimestamp(block) + accountExtrinsicFailedTotalCount.updatedAt = getBlockNumber(block) cache.accountExtrinsicFailedTotalCount.set( accountExtrinsicFailedTotalCount.id, - accountExtrinsicFailedTotalCount - ); + accountExtrinsicFailedTotalCount, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/leaderboard-squid/src/events/farmer.ts b/indexers/leaderboard-squid/src/events/farmer.ts index 94d78ace4..5e9cc0e69 100644 --- a/indexers/leaderboard-squid/src/events/farmer.ts +++ b/indexers/leaderboard-squid/src/events/farmer.ts @@ -1,4 +1,4 @@ -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { getOrCreateFarmerBlockTotalCount, getOrCreateFarmerBlockTotalValue, @@ -6,146 +6,116 @@ import { getOrCreateFarmerVoteAndBlockTotalValue, getOrCreateFarmerVoteTotalCount, getOrCreateFarmerVoteTotalValue, -} from "../storage/farmer"; -import { getBlockNumber, getTimestamp, hexToAccount } from "../utils"; -import { Cache } from "../utils/cache"; - -export function processFarmerVoteRewardEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const accountId = hexToAccount(event.args.voter); - const reward = BigInt(event.args.reward); - - const farmerVoteTotalCount = getOrCreateFarmerVoteTotalCount( - cache, - block, - accountId - ); +} from '../storage/farmer' +import { getBlockNumber, getTimestamp, hexToAccount } from '../utils' +import { Cache } from '../utils/cache' - farmerVoteTotalCount.value++; - farmerVoteTotalCount.lastContributionAt = getTimestamp(block); - farmerVoteTotalCount.updatedAt = getBlockNumber(block); +export function processFarmerVoteRewardEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const accountId = hexToAccount(event.args.voter) + const reward = BigInt(event.args.reward) - cache.farmerVoteTotalCount.set(farmerVoteTotalCount.id, farmerVoteTotalCount); + const farmerVoteTotalCount = getOrCreateFarmerVoteTotalCount(cache, block, accountId) - const farmerVoteTotalValue = getOrCreateFarmerVoteTotalValue( - cache, - block, - accountId - ); + farmerVoteTotalCount.value++ + farmerVoteTotalCount.lastContributionAt = getTimestamp(block) + farmerVoteTotalCount.updatedAt = getBlockNumber(block) + + cache.farmerVoteTotalCount.set(farmerVoteTotalCount.id, farmerVoteTotalCount) - farmerVoteTotalValue.value += reward; - farmerVoteTotalValue.lastContributionAt = getTimestamp(block); - farmerVoteTotalValue.updatedAt = getBlockNumber(block); + const farmerVoteTotalValue = getOrCreateFarmerVoteTotalValue(cache, block, accountId) - cache.farmerVoteTotalValue.set(farmerVoteTotalValue.id, farmerVoteTotalValue); + farmerVoteTotalValue.value += reward + farmerVoteTotalValue.lastContributionAt = getTimestamp(block) + farmerVoteTotalValue.updatedAt = getBlockNumber(block) + + cache.farmerVoteTotalValue.set(farmerVoteTotalValue.id, farmerVoteTotalValue) const farmerVoteAndBlockTotalCount = getOrCreateFarmerVoteAndBlockTotalCount( cache, block, - accountId - ); + accountId, + ) - farmerVoteAndBlockTotalCount.value++; - farmerVoteAndBlockTotalCount.lastContributionAt = getTimestamp(block); - farmerVoteAndBlockTotalCount.updatedAt = getBlockNumber(block); + farmerVoteAndBlockTotalCount.value++ + farmerVoteAndBlockTotalCount.lastContributionAt = getTimestamp(block) + farmerVoteAndBlockTotalCount.updatedAt = getBlockNumber(block) cache.farmerVoteAndBlockTotalCount.set( farmerVoteAndBlockTotalCount.id, - farmerVoteAndBlockTotalCount - ); + farmerVoteAndBlockTotalCount, + ) const farmerVoteAndBlockTotalValue = getOrCreateFarmerVoteAndBlockTotalValue( cache, block, - accountId - ); + accountId, + ) - farmerVoteAndBlockTotalValue.value += reward; - farmerVoteAndBlockTotalValue.lastContributionAt = getTimestamp(block); - farmerVoteAndBlockTotalValue.updatedAt = getBlockNumber(block); + farmerVoteAndBlockTotalValue.value += reward + farmerVoteAndBlockTotalValue.lastContributionAt = getTimestamp(block) + farmerVoteAndBlockTotalValue.updatedAt = getBlockNumber(block) cache.farmerVoteAndBlockTotalValue.set( farmerVoteAndBlockTotalValue.id, - farmerVoteAndBlockTotalValue - ); + farmerVoteAndBlockTotalValue, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processFarmerBlockRewardEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const accountId = hexToAccount(event.args.blockAuthor); - const reward = BigInt(event.args.reward); +export function processFarmerBlockRewardEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const accountId = hexToAccount(event.args.blockAuthor) + const reward = BigInt(event.args.reward) - const farmerBlockTotalCount = getOrCreateFarmerBlockTotalCount( - cache, - block, - accountId - ); + const farmerBlockTotalCount = getOrCreateFarmerBlockTotalCount(cache, block, accountId) - farmerBlockTotalCount.value++; - farmerBlockTotalCount.lastContributionAt = getTimestamp(block); - farmerBlockTotalCount.updatedAt = getBlockNumber(block); + farmerBlockTotalCount.value++ + farmerBlockTotalCount.lastContributionAt = getTimestamp(block) + farmerBlockTotalCount.updatedAt = getBlockNumber(block) - cache.farmerBlockTotalCount.set( - farmerBlockTotalCount.id, - farmerBlockTotalCount - ); + cache.farmerBlockTotalCount.set(farmerBlockTotalCount.id, farmerBlockTotalCount) - const farmerBlockTotalValue = getOrCreateFarmerBlockTotalValue( - cache, - block, - accountId - ); + const farmerBlockTotalValue = getOrCreateFarmerBlockTotalValue(cache, block, accountId) - farmerBlockTotalValue.value += reward; - farmerBlockTotalValue.lastContributionAt = getTimestamp(block); - farmerBlockTotalValue.updatedAt = getBlockNumber(block); + farmerBlockTotalValue.value += reward + farmerBlockTotalValue.lastContributionAt = getTimestamp(block) + farmerBlockTotalValue.updatedAt = getBlockNumber(block) - cache.farmerBlockTotalValue.set( - farmerBlockTotalValue.id, - farmerBlockTotalValue - ); + cache.farmerBlockTotalValue.set(farmerBlockTotalValue.id, farmerBlockTotalValue) const farmerVoteAndBlockTotalCount = getOrCreateFarmerVoteAndBlockTotalCount( cache, block, - accountId - ); + accountId, + ) - farmerVoteAndBlockTotalCount.value++; - farmerVoteAndBlockTotalCount.lastContributionAt = getTimestamp(block); - farmerVoteAndBlockTotalCount.updatedAt = getBlockNumber(block); + farmerVoteAndBlockTotalCount.value++ + farmerVoteAndBlockTotalCount.lastContributionAt = getTimestamp(block) + farmerVoteAndBlockTotalCount.updatedAt = getBlockNumber(block) cache.farmerVoteAndBlockTotalCount.set( farmerVoteAndBlockTotalCount.id, - farmerVoteAndBlockTotalCount - ); + farmerVoteAndBlockTotalCount, + ) const farmerVoteAndBlockTotalValue = getOrCreateFarmerVoteAndBlockTotalValue( cache, block, - accountId - ); + accountId, + ) - farmerVoteAndBlockTotalValue.value += reward; - farmerVoteAndBlockTotalValue.lastContributionAt = getTimestamp(block); - farmerVoteAndBlockTotalValue.updatedAt = getBlockNumber(block); + farmerVoteAndBlockTotalValue.value += reward + farmerVoteAndBlockTotalValue.lastContributionAt = getTimestamp(block) + farmerVoteAndBlockTotalValue.updatedAt = getBlockNumber(block) cache.farmerVoteAndBlockTotalValue.set( farmerVoteAndBlockTotalValue.id, - farmerVoteAndBlockTotalValue - ); + farmerVoteAndBlockTotalValue, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/leaderboard-squid/src/events/fee.ts b/indexers/leaderboard-squid/src/events/fee.ts index 839d367fc..72c97bd07 100644 --- a/indexers/leaderboard-squid/src/events/fee.ts +++ b/indexers/leaderboard-squid/src/events/fee.ts @@ -1,31 +1,30 @@ -import type { CtxBlock, CtxEvent } from "../processor"; -import { getOrCreateAccountTransactionFeePaidTotalValue } from "../storage/account"; -import { getBlockNumber, getTimestamp, hexToAccount } from "../utils"; -import { Cache } from "../utils/cache"; +import type { CtxBlock, CtxEvent } from '../processor' +import { getOrCreateAccountTransactionFeePaidTotalValue } from '../storage/account' +import { getBlockNumber, getTimestamp, hexToAccount } from '../utils' +import { Cache } from '../utils/cache' -export function processTransactionFeePaidEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const accountId = hexToAccount(event.args.who); - const actualFee = BigInt(event.args.actualFee); - const tip = BigInt(event.args.tip); - const totalFeePaid = actualFee + tip; +export function processTransactionFeePaidEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const accountId = hexToAccount(event.args.who) + const actualFee = BigInt(event.args.actualFee) + const tip = BigInt(event.args.tip) + const totalFeePaid = actualFee + tip - const accountTransactionFeePaidTotalValue = - getOrCreateAccountTransactionFeePaidTotalValue(cache, block, accountId); + const accountTransactionFeePaidTotalValue = getOrCreateAccountTransactionFeePaidTotalValue( + cache, + block, + accountId, + ) - accountTransactionFeePaidTotalValue.value += totalFeePaid; - accountTransactionFeePaidTotalValue.lastContributionAt = getTimestamp(block); - accountTransactionFeePaidTotalValue.updatedAt = getBlockNumber(block); + accountTransactionFeePaidTotalValue.value += totalFeePaid + accountTransactionFeePaidTotalValue.lastContributionAt = getTimestamp(block) + accountTransactionFeePaidTotalValue.updatedAt = getBlockNumber(block) cache.accountTransactionFeePaidTotalValue.set( accountTransactionFeePaidTotalValue.id, - accountTransactionFeePaidTotalValue - ); + accountTransactionFeePaidTotalValue, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/leaderboard-squid/src/events/index.ts b/indexers/leaderboard-squid/src/events/index.ts index c793ed789..ef7ab39b3 100644 --- a/indexers/leaderboard-squid/src/events/index.ts +++ b/indexers/leaderboard-squid/src/events/index.ts @@ -1,17 +1,11 @@ -import type { ApiPromise } from "@autonomys/auto-utils"; -import type { CtxBlock, CtxEvent } from "../processor"; -import { events } from "../types"; -import { Cache } from "../utils/cache"; -import { processRemarkEvent, processTransferEvent } from "./account"; -import { - processExtrinsicFailedEvent, - processExtrinsicSuccessEvent, -} from "./extrinsic"; // Import the new processing functions -import { - processFarmerBlockRewardEvent, - processFarmerVoteRewardEvent, -} from "./farmer"; -import { processTransactionFeePaidEvent } from "./fee"; +import type { ApiPromise } from '@autonomys/auto-utils' +import type { CtxBlock, CtxEvent } from '../processor' +import { events } from '../types' +import { Cache } from '../utils/cache' +import { processRemarkEvent, processTransferEvent } from './account' +import { processExtrinsicFailedEvent, processExtrinsicSuccessEvent } from './extrinsic' // Import the new processing functions +import { processFarmerBlockRewardEvent, processFarmerVoteRewardEvent } from './farmer' +import { processTransactionFeePaidEvent } from './fee' import { processBundleStoredEvent, processOperatorNominatedEvent, @@ -19,58 +13,53 @@ import { processOperatorRewardedEvent, processOperatorTaxCollectedEvent, processWithdrewStakeEvent, -} from "./staking"; +} from './staking' export async function processEvents( cache: Cache, api: ApiPromise, block: CtxBlock, - events: CtxEvent[] + events: CtxEvent[], ) { for (let event of events) { - cache = await processEvent(cache, api, block, event); + cache = await processEvent(cache, api, block, event) } - return cache; + return cache } -async function processEvent( - cache: Cache, - api: ApiPromise, - block: CtxBlock, - event: CtxEvent -) { +async function processEvent(cache: Cache, api: ApiPromise, block: CtxBlock, event: CtxEvent) { switch (event.name) { // account events case events.balances.transfer.name: - return processTransferEvent(cache, block, event); + return processTransferEvent(cache, block, event) case events.system.remarked.name: - return processRemarkEvent(cache, block, event); + return processRemarkEvent(cache, block, event) case events.system.extrinsicSuccess.name: - return processExtrinsicSuccessEvent(cache, block, event); + return processExtrinsicSuccessEvent(cache, block, event) case events.system.extrinsicFailed.name: - return processExtrinsicFailedEvent(cache, block, event); + return processExtrinsicFailedEvent(cache, block, event) case events.transactionPayment.transactionFeePaid.name: - return processTransactionFeePaidEvent(cache, block, event); + return processTransactionFeePaidEvent(cache, block, event) // farmer events case events.rewards.voteReward.name: - return processFarmerVoteRewardEvent(cache, block, event); + return processFarmerVoteRewardEvent(cache, block, event) case events.rewards.blockReward.name: - return processFarmerBlockRewardEvent(cache, block, event); + return processFarmerBlockRewardEvent(cache, block, event) // operator & nominator events case events.domains.operatorRewarded.name: - return processOperatorRewardedEvent(cache, block, event); + return processOperatorRewardedEvent(cache, block, event) case events.domains.operatorTaxCollected.name: - return processOperatorTaxCollectedEvent(cache, block, event); + return processOperatorTaxCollectedEvent(cache, block, event) case events.domains.bundleStored.name: - return processBundleStoredEvent(cache, block, event); + return processBundleStoredEvent(cache, block, event) case events.domains.operatorRegistered.name: - return processOperatorRegisteredEvent(cache, block, event); + return processOperatorRegisteredEvent(cache, block, event) case events.domains.operatorNominated.name: - return processOperatorNominatedEvent(cache, block, event); + return processOperatorNominatedEvent(cache, block, event) case events.domains.withdrewStake.name: - return processWithdrewStakeEvent(cache, block, event); + return processWithdrewStakeEvent(cache, block, event) case events.domains.storageFeeDeposited.name: default: - return cache; + return cache } } diff --git a/indexers/leaderboard-squid/src/events/staking.ts b/indexers/leaderboard-squid/src/events/staking.ts index 816393caf..869fcfd11 100644 --- a/indexers/leaderboard-squid/src/events/staking.ts +++ b/indexers/leaderboard-squid/src/events/staking.ts @@ -1,9 +1,9 @@ -import type { CtxBlock, CtxEvent } from "../processor"; +import type { CtxBlock, CtxEvent } from '../processor' import { getOrCreateNominatorDepositsTotalCount, getOrCreateNominatorDepositsTotalValue, getOrCreateNominatorWithdrawalsTotalCount, -} from "../storage/nominator"; +} from '../storage/nominator' import { getOrCreateOperatorBundleTotalCount, getOrCreateOperatorDepositsTotalCount, @@ -11,226 +11,170 @@ import { getOrCreateOperatorTotalRewardsCollected, getOrCreateOperatorTotalTaxCollected, getOrCreateOperatorWithdrawalsTotalCount, -} from "../storage/operator"; -import { getBlockNumber, getTimestamp, hexToAccount } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../storage/operator' +import { getBlockNumber, getTimestamp, hexToAccount } from '../utils' +import { Cache } from '../utils/cache' -export function processOperatorRewardedEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const operatorId = String(event.args.operatorId) ?? "0"; +export function processOperatorRewardedEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const operatorId = String(event.args.operatorId) ?? '0' - const reward = BigInt(event.args.reward); - if (reward === BigInt(0)) return cache; + const reward = BigInt(event.args.reward) + if (reward === BigInt(0)) return cache - const operatorTotalRewardsCollected = - getOrCreateOperatorTotalRewardsCollected(cache, block, operatorId); + const operatorTotalRewardsCollected = getOrCreateOperatorTotalRewardsCollected( + cache, + block, + operatorId, + ) - operatorTotalRewardsCollected.value += reward; - operatorTotalRewardsCollected.lastContributionAt = getTimestamp(block); - operatorTotalRewardsCollected.updatedAt = getBlockNumber(block); + operatorTotalRewardsCollected.value += reward + operatorTotalRewardsCollected.lastContributionAt = getTimestamp(block) + operatorTotalRewardsCollected.updatedAt = getBlockNumber(block) cache.operatorTotalRewardsCollected.set( operatorTotalRewardsCollected.id, - operatorTotalRewardsCollected - ); + operatorTotalRewardsCollected, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processOperatorTaxCollectedEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const operatorId = String(event.args.operatorId) ?? "0"; - const tax = BigInt(event.args.tax ?? 0); +export function processOperatorTaxCollectedEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const operatorId = String(event.args.operatorId) ?? '0' + const tax = BigInt(event.args.tax ?? 0) - const operatorTotalTaxCollected = getOrCreateOperatorTotalTaxCollected( - cache, - block, - operatorId - ); + const operatorTotalTaxCollected = getOrCreateOperatorTotalTaxCollected(cache, block, operatorId) - operatorTotalTaxCollected.value += tax; - operatorTotalTaxCollected.lastContributionAt = getTimestamp(block); - operatorTotalTaxCollected.updatedAt = getBlockNumber(block); + operatorTotalTaxCollected.value += tax + operatorTotalTaxCollected.lastContributionAt = getTimestamp(block) + operatorTotalTaxCollected.updatedAt = getBlockNumber(block) - cache.operatorTotalTaxCollected.set( - operatorTotalTaxCollected.id, - operatorTotalTaxCollected - ); + cache.operatorTotalTaxCollected.set(operatorTotalTaxCollected.id, operatorTotalTaxCollected) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processBundleStoredEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const operatorId = String(event.args.bundleAuthor) ?? "0"; +export function processBundleStoredEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const operatorId = String(event.args.bundleAuthor) ?? '0' - const operatorBundleTotalCount = getOrCreateOperatorBundleTotalCount( - cache, - block, - operatorId - ); + const operatorBundleTotalCount = getOrCreateOperatorBundleTotalCount(cache, block, operatorId) - operatorBundleTotalCount.value++; - operatorBundleTotalCount.lastContributionAt = getTimestamp(block); - operatorBundleTotalCount.updatedAt = getBlockNumber(block); + operatorBundleTotalCount.value++ + operatorBundleTotalCount.lastContributionAt = getTimestamp(block) + operatorBundleTotalCount.updatedAt = getBlockNumber(block) - cache.operatorBundleTotalCount.set( - operatorBundleTotalCount.id, - operatorBundleTotalCount - ); + cache.operatorBundleTotalCount.set(operatorBundleTotalCount.id, operatorBundleTotalCount) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processOperatorRegisteredEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const operatorId = String(event.args.operatorId) ?? "0"; +export function processOperatorRegisteredEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const operatorId = String(event.args.operatorId) ?? '0' - const operatorDepositsTotalCount = getOrCreateOperatorDepositsTotalCount( - cache, - block, - operatorId - ); + const operatorDepositsTotalCount = getOrCreateOperatorDepositsTotalCount(cache, block, operatorId) - operatorDepositsTotalCount.value++; - operatorDepositsTotalCount.lastContributionAt = getTimestamp(block); - operatorDepositsTotalCount.updatedAt = getBlockNumber(block); + operatorDepositsTotalCount.value++ + operatorDepositsTotalCount.lastContributionAt = getTimestamp(block) + operatorDepositsTotalCount.updatedAt = getBlockNumber(block) - cache.operatorDepositsTotalCount.set( - operatorDepositsTotalCount.id, - operatorDepositsTotalCount - ); + cache.operatorDepositsTotalCount.set(operatorDepositsTotalCount.id, operatorDepositsTotalCount) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processOperatorNominatedEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const operatorId = String(event.args.operatorId) ?? "0"; - const accountId = hexToAccount(event.args.nominatorId); - const amount = BigInt(event.args.amount ?? 0); +export function processOperatorNominatedEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const operatorId = String(event.args.operatorId) ?? '0' + const accountId = hexToAccount(event.args.nominatorId) + const amount = BigInt(event.args.amount ?? 0) - const operatorDepositsTotalCount = getOrCreateOperatorDepositsTotalCount( - cache, - block, - operatorId - ); + const operatorDepositsTotalCount = getOrCreateOperatorDepositsTotalCount(cache, block, operatorId) - operatorDepositsTotalCount.value++; - operatorDepositsTotalCount.lastContributionAt = getTimestamp(block); - operatorDepositsTotalCount.updatedAt = getBlockNumber(block); + operatorDepositsTotalCount.value++ + operatorDepositsTotalCount.lastContributionAt = getTimestamp(block) + operatorDepositsTotalCount.updatedAt = getBlockNumber(block) - cache.operatorDepositsTotalCount.set( - operatorDepositsTotalCount.id, - operatorDepositsTotalCount - ); + cache.operatorDepositsTotalCount.set(operatorDepositsTotalCount.id, operatorDepositsTotalCount) - const operatorDepositsTotalValue = getOrCreateOperatorDepositsTotalValue( - cache, - block, - operatorId - ); + const operatorDepositsTotalValue = getOrCreateOperatorDepositsTotalValue(cache, block, operatorId) - operatorDepositsTotalValue.value += amount; - operatorDepositsTotalValue.lastContributionAt = getTimestamp(block); - operatorDepositsTotalValue.updatedAt = getBlockNumber(block); + operatorDepositsTotalValue.value += amount + operatorDepositsTotalValue.lastContributionAt = getTimestamp(block) + operatorDepositsTotalValue.updatedAt = getBlockNumber(block) - cache.operatorDepositsTotalValue.set( - operatorDepositsTotalValue.id, - operatorDepositsTotalValue - ); + cache.operatorDepositsTotalValue.set(operatorDepositsTotalValue.id, operatorDepositsTotalValue) const nominatorDepositsTotalCount = getOrCreateNominatorDepositsTotalCount( cache, block, - accountId - ); + accountId, + ) - nominatorDepositsTotalCount.value++; - nominatorDepositsTotalCount.lastContributionAt = getTimestamp(block); - nominatorDepositsTotalCount.updatedAt = getBlockNumber(block); + nominatorDepositsTotalCount.value++ + nominatorDepositsTotalCount.lastContributionAt = getTimestamp(block) + nominatorDepositsTotalCount.updatedAt = getBlockNumber(block) - cache.nominatorDepositsTotalCount.set( - nominatorDepositsTotalCount.id, - nominatorDepositsTotalCount - ); + cache.nominatorDepositsTotalCount.set(nominatorDepositsTotalCount.id, nominatorDepositsTotalCount) const nominatorDepositsTotalValue = getOrCreateNominatorDepositsTotalValue( cache, block, - accountId - ); + accountId, + ) - nominatorDepositsTotalValue.value += amount; - nominatorDepositsTotalValue.lastContributionAt = getTimestamp(block); - nominatorDepositsTotalValue.updatedAt = getBlockNumber(block); + nominatorDepositsTotalValue.value += amount + nominatorDepositsTotalValue.lastContributionAt = getTimestamp(block) + nominatorDepositsTotalValue.updatedAt = getBlockNumber(block) - cache.nominatorDepositsTotalValue.set( - nominatorDepositsTotalValue.id, - nominatorDepositsTotalValue - ); + cache.nominatorDepositsTotalValue.set(nominatorDepositsTotalValue.id, nominatorDepositsTotalValue) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processWithdrewStakeEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const operatorId = String(event.args.operatorId) ?? "0"; - const accountId = hexToAccount(event.args.nominatorId); +export function processWithdrewStakeEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const operatorId = String(event.args.operatorId) ?? '0' + const accountId = hexToAccount(event.args.nominatorId) - const operatorWithdrawalsTotalCount = - getOrCreateOperatorWithdrawalsTotalCount(cache, block, operatorId); + const operatorWithdrawalsTotalCount = getOrCreateOperatorWithdrawalsTotalCount( + cache, + block, + operatorId, + ) - operatorWithdrawalsTotalCount.value++; - operatorWithdrawalsTotalCount.lastContributionAt = getTimestamp(block); - operatorWithdrawalsTotalCount.updatedAt = getBlockNumber(block); + operatorWithdrawalsTotalCount.value++ + operatorWithdrawalsTotalCount.lastContributionAt = getTimestamp(block) + operatorWithdrawalsTotalCount.updatedAt = getBlockNumber(block) cache.operatorWithdrawalsTotalCount.set( operatorWithdrawalsTotalCount.id, - operatorWithdrawalsTotalCount - ); + operatorWithdrawalsTotalCount, + ) - const nominatorWithdrawalsTotalCount = - getOrCreateNominatorWithdrawalsTotalCount(cache, block, accountId); + const nominatorWithdrawalsTotalCount = getOrCreateNominatorWithdrawalsTotalCount( + cache, + block, + accountId, + ) - nominatorWithdrawalsTotalCount.value++; - nominatorWithdrawalsTotalCount.lastContributionAt = getTimestamp(block); - nominatorWithdrawalsTotalCount.updatedAt = getBlockNumber(block); + nominatorWithdrawalsTotalCount.value++ + nominatorWithdrawalsTotalCount.lastContributionAt = getTimestamp(block) + nominatorWithdrawalsTotalCount.updatedAt = getBlockNumber(block) cache.nominatorWithdrawalsTotalCount.set( nominatorWithdrawalsTotalCount.id, - nominatorWithdrawalsTotalCount - ); + nominatorWithdrawalsTotalCount, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/leaderboard-squid/src/main.ts b/indexers/leaderboard-squid/src/main.ts index ed2e4b246..9a9500b38 100644 --- a/indexers/leaderboard-squid/src/main.ts +++ b/indexers/leaderboard-squid/src/main.ts @@ -1,15 +1,15 @@ -import { createConnection } from "@autonomys/auto-utils"; -import { TypeormDatabase } from "@subsquid/typeorm-store"; -import { assertNotNull } from "@subsquid/util-internal"; -import { processBlocks } from "./blocks"; -import { processor } from "./processor"; +import { createConnection } from '@autonomys/auto-utils' +import { TypeormDatabase } from '@subsquid/typeorm-store' +import { assertNotNull } from '@subsquid/util-internal' +import { processBlocks } from './blocks' +import { processor } from './processor' processor.run(new TypeormDatabase({ supportHotBlocks: true }), async (ctx) => { const api = await createConnection( - assertNotNull(process.env.RPC_CONSENSUS_HTTP, "No RPC endpoint supplied") - ); + assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC endpoint supplied'), + ) - await processBlocks(ctx, api); + await processBlocks(ctx, api) - await api.disconnect(); -}); + await api.disconnect() +}) diff --git a/indexers/leaderboard-squid/src/model/index.ts b/indexers/leaderboard-squid/src/model/index.ts deleted file mode 100644 index 73bfb2881..000000000 --- a/indexers/leaderboard-squid/src/model/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./generated" diff --git a/indexers/leaderboard-squid/src/processor.ts b/indexers/leaderboard-squid/src/processor.ts index a60429ca4..4e2570b7c 100644 --- a/indexers/leaderboard-squid/src/processor.ts +++ b/indexers/leaderboard-squid/src/processor.ts @@ -6,19 +6,14 @@ import { Call as _Call, Event as _Event, Extrinsic as _Extrinsic, -} from "@subsquid/substrate-processor"; -import { assertNotNull } from "@subsquid/util-internal"; -import { calls, events } from "./types"; +} from '@subsquid/substrate-processor' +import { assertNotNull } from '@subsquid/util-internal' +import { calls, events } from './types' export const processor = new SubstrateBatchProcessor() - .setGateway( - assertNotNull(process.env.CONSENSUS_GATEWAY, "No Gateway endpoint supplied") - ) + .setGateway(assertNotNull(process.env.CONSENSUS_GATEWAY, 'No Gateway endpoint supplied')) .setRpcEndpoint({ - url: assertNotNull( - process.env.RPC_CONSENSUS_HTTP, - "No RPC endpoint supplied" - ), + url: assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC endpoint supplied'), // More RPC connection options at https://docs.subsquid.io/substrate-indexing/setup/general/#set-data-source rateLimit: 10, }) @@ -77,15 +72,15 @@ export const processor = new SubstrateBatchProcessor() extrinsicIndex: true, callAddress: true, }, - }); + }) -export type Fields = SubstrateBatchProcessorFields; -export type Block = BlockHeader; -export type Event = _Event; -export type Call = _Call; -export type Extrinsic = _Extrinsic; -export type ProcessorContext = DataHandlerContext; -export type Ctx = ProcessorContext; -export type CtxBlock = Ctx["blocks"][0]; -export type CtxExtrinsic = CtxBlock["extrinsics"][0]; -export type CtxEvent = CtxExtrinsic["events"][0]; +export type Fields = SubstrateBatchProcessorFields +export type Block = BlockHeader +export type Event = _Event +export type Call = _Call +export type Extrinsic = _Extrinsic +export type ProcessorContext = DataHandlerContext +export type Ctx = ProcessorContext +export type CtxBlock = Ctx['blocks'][0] +export type CtxExtrinsic = CtxBlock['extrinsics'][0] +export type CtxEvent = CtxExtrinsic['events'][0] diff --git a/indexers/leaderboard-squid/src/storage/account.ts b/indexers/leaderboard-squid/src/storage/account.ts index 4f4b9c60d..451ada653 100644 --- a/indexers/leaderboard-squid/src/storage/account.ts +++ b/indexers/leaderboard-squid/src/storage/account.ts @@ -8,15 +8,15 @@ import { AccountTransferReceiverTotalValue, AccountTransferSenderTotalCount, AccountTransferSenderTotalValue, -} from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber, getTimestamp } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' export const createAccountTransferSenderTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountTransferSenderTotalCount => new AccountTransferSenderTotalCount({ id: accountId, @@ -26,27 +26,26 @@ export const createAccountTransferSenderTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountTransferSenderTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountTransferSenderTotalCount => { - const accountTransferSenderTotalCount = - cache.accountTransferSenderTotalCount.get(accountId); + const accountTransferSenderTotalCount = cache.accountTransferSenderTotalCount.get(accountId) if (!accountTransferSenderTotalCount) - return createAccountTransferSenderTotalCount(block, accountId, props); + return createAccountTransferSenderTotalCount(block, accountId, props) - return accountTransferSenderTotalCount; -}; + return accountTransferSenderTotalCount +} export const createAccountTransferSenderTotalValue = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountTransferSenderTotalValue => new AccountTransferSenderTotalValue({ id: accountId, @@ -56,27 +55,26 @@ export const createAccountTransferSenderTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountTransferSenderTotalValue = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountTransferSenderTotalValue => { - const accountTransferSenderTotalValue = - cache.accountTransferSenderTotalValue.get(accountId); + const accountTransferSenderTotalValue = cache.accountTransferSenderTotalValue.get(accountId) if (!accountTransferSenderTotalValue) - return createAccountTransferSenderTotalValue(block, accountId, props); + return createAccountTransferSenderTotalValue(block, accountId, props) - return accountTransferSenderTotalValue; -}; + return accountTransferSenderTotalValue +} export const createAccountTransferReceiverTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountTransferReceiverTotalCount => new AccountTransferReceiverTotalCount({ id: accountId, @@ -86,27 +84,26 @@ export const createAccountTransferReceiverTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountTransferReceiverTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountTransferReceiverTotalCount => { - const accountTransferReceiverTotalCount = - cache.accountTransferReceiverTotalCount.get(accountId); + const accountTransferReceiverTotalCount = cache.accountTransferReceiverTotalCount.get(accountId) if (!accountTransferReceiverTotalCount) - return createAccountTransferReceiverTotalCount(block, accountId, props); + return createAccountTransferReceiverTotalCount(block, accountId, props) - return accountTransferReceiverTotalCount; -}; + return accountTransferReceiverTotalCount +} export const createAccountTransferReceiverTotalValue = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountTransferReceiverTotalValue => new AccountTransferReceiverTotalValue({ id: accountId, @@ -116,27 +113,26 @@ export const createAccountTransferReceiverTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountTransferReceiverTotalValue = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountTransferReceiverTotalValue => { - const accountTransferReceiverTotalValue = - cache.accountTransferReceiverTotalValue.get(accountId); + const accountTransferReceiverTotalValue = cache.accountTransferReceiverTotalValue.get(accountId) if (!accountTransferReceiverTotalValue) - return createAccountTransferReceiverTotalValue(block, accountId, props); + return createAccountTransferReceiverTotalValue(block, accountId, props) - return accountTransferReceiverTotalValue; -}; + return accountTransferReceiverTotalValue +} export const createAccountRemarkCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountRemarkCount => new AccountRemarkCount({ id: accountId, @@ -146,26 +142,25 @@ export const createAccountRemarkCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountRemarkCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountRemarkCount => { - const accountRemarkCount = cache.accountRemarkCount.get(accountId); + const accountRemarkCount = cache.accountRemarkCount.get(accountId) - if (!accountRemarkCount) - return createAccountRemarkCount(block, accountId, props); + if (!accountRemarkCount) return createAccountRemarkCount(block, accountId, props) - return accountRemarkCount; -}; + return accountRemarkCount +} export const createAccountExtrinsicTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountExtrinsicTotalCount => new AccountExtrinsicTotalCount({ id: accountId, @@ -175,27 +170,25 @@ export const createAccountExtrinsicTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountExtrinsicTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountExtrinsicTotalCount => { - const accountExtrinsicTotalCount = - cache.accountExtrinsicTotalCount.get(accountId); + const accountExtrinsicTotalCount = cache.accountExtrinsicTotalCount.get(accountId) - if (!accountExtrinsicTotalCount) - return createAccountExtrinsicTotalCount(block, accountId, props); + if (!accountExtrinsicTotalCount) return createAccountExtrinsicTotalCount(block, accountId, props) - return accountExtrinsicTotalCount; -}; + return accountExtrinsicTotalCount +} export const createAccountExtrinsicSuccessTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountExtrinsicSuccessTotalCount => new AccountExtrinsicSuccessTotalCount({ id: accountId, @@ -205,27 +198,26 @@ export const createAccountExtrinsicSuccessTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountExtrinsicSuccessTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountExtrinsicSuccessTotalCount => { - const accountExtrinsicSuccessTotalCount = - cache.accountExtrinsicSuccessTotalCount.get(accountId); + const accountExtrinsicSuccessTotalCount = cache.accountExtrinsicSuccessTotalCount.get(accountId) if (!accountExtrinsicSuccessTotalCount) - return createAccountExtrinsicSuccessTotalCount(block, accountId, props); + return createAccountExtrinsicSuccessTotalCount(block, accountId, props) - return accountExtrinsicSuccessTotalCount; -}; + return accountExtrinsicSuccessTotalCount +} export const createAccountExtrinsicFailedTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountExtrinsicFailedTotalCount => new AccountExtrinsicFailedTotalCount({ id: accountId, @@ -235,27 +227,26 @@ export const createAccountExtrinsicFailedTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountExtrinsicFailedTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountExtrinsicFailedTotalCount => { - const accountExtrinsicFailedTotalCount = - cache.accountExtrinsicFailedTotalCount.get(accountId); + const accountExtrinsicFailedTotalCount = cache.accountExtrinsicFailedTotalCount.get(accountId) if (!accountExtrinsicFailedTotalCount) - return createAccountExtrinsicFailedTotalCount(block, accountId, props); + return createAccountExtrinsicFailedTotalCount(block, accountId, props) - return accountExtrinsicFailedTotalCount; -}; + return accountExtrinsicFailedTotalCount +} export const createAccountTransactionFeePaidTotalValue = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountTransactionFeePaidTotalValue => new AccountTransactionFeePaidTotalValue({ id: accountId, @@ -265,19 +256,19 @@ export const createAccountTransactionFeePaidTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountTransactionFeePaidTotalValue = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountTransactionFeePaidTotalValue => { const accountTransactionFeePaidTotalValue = - cache.accountTransactionFeePaidTotalValue.get(accountId); + cache.accountTransactionFeePaidTotalValue.get(accountId) if (!accountTransactionFeePaidTotalValue) - return createAccountTransactionFeePaidTotalValue(block, accountId, props); + return createAccountTransactionFeePaidTotalValue(block, accountId, props) - return accountTransactionFeePaidTotalValue; -}; + return accountTransactionFeePaidTotalValue +} diff --git a/indexers/leaderboard-squid/src/storage/farmer.ts b/indexers/leaderboard-squid/src/storage/farmer.ts index 048fcac21..223024a7a 100644 --- a/indexers/leaderboard-squid/src/storage/farmer.ts +++ b/indexers/leaderboard-squid/src/storage/farmer.ts @@ -5,15 +5,15 @@ import { FarmerVoteAndBlockTotalValue, FarmerVoteTotalCount, FarmerVoteTotalValue, -} from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber, getTimestamp } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' export const createFarmerVoteTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): FarmerVoteTotalCount => new FarmerVoteTotalCount({ id: accountId, @@ -23,26 +23,25 @@ export const createFarmerVoteTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateFarmerVoteTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): FarmerVoteTotalCount => { - const farmerVoteTotalCount = cache.farmerVoteTotalCount.get(accountId); + const farmerVoteTotalCount = cache.farmerVoteTotalCount.get(accountId) - if (!farmerVoteTotalCount) - return createFarmerVoteTotalCount(block, accountId, props); + if (!farmerVoteTotalCount) return createFarmerVoteTotalCount(block, accountId, props) - return farmerVoteTotalCount; -}; + return farmerVoteTotalCount +} export const createFarmerVoteTotalValue = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): FarmerVoteTotalValue => new FarmerVoteTotalValue({ id: accountId, @@ -52,26 +51,25 @@ export const createFarmerVoteTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateFarmerVoteTotalValue = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): FarmerVoteTotalValue => { - const farmerVoteTotalValue = cache.farmerVoteTotalValue.get(accountId); + const farmerVoteTotalValue = cache.farmerVoteTotalValue.get(accountId) - if (!farmerVoteTotalValue) - return createFarmerVoteTotalValue(block, accountId, props); + if (!farmerVoteTotalValue) return createFarmerVoteTotalValue(block, accountId, props) - return farmerVoteTotalValue; -}; + return farmerVoteTotalValue +} export const createFarmerBlockTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): FarmerBlockTotalCount => new FarmerBlockTotalCount({ id: accountId, @@ -81,26 +79,25 @@ export const createFarmerBlockTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateFarmerBlockTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): FarmerBlockTotalCount => { - const farmerBlockTotalCount = cache.farmerBlockTotalCount.get(accountId); + const farmerBlockTotalCount = cache.farmerBlockTotalCount.get(accountId) - if (!farmerBlockTotalCount) - return createFarmerBlockTotalCount(block, accountId, props); + if (!farmerBlockTotalCount) return createFarmerBlockTotalCount(block, accountId, props) - return farmerBlockTotalCount; -}; + return farmerBlockTotalCount +} export const createFarmerBlockTotalValue = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): FarmerBlockTotalValue => new FarmerBlockTotalValue({ id: accountId, @@ -110,26 +107,25 @@ export const createFarmerBlockTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateFarmerBlockTotalValue = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): FarmerBlockTotalValue => { - const farmerBlockTotalValue = cache.farmerBlockTotalValue.get(accountId); + const farmerBlockTotalValue = cache.farmerBlockTotalValue.get(accountId) - if (!farmerBlockTotalValue) - return createFarmerBlockTotalValue(block, accountId, props); + if (!farmerBlockTotalValue) return createFarmerBlockTotalValue(block, accountId, props) - return farmerBlockTotalValue; -}; + return farmerBlockTotalValue +} export const createFarmerVoteAndBlockTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): FarmerVoteAndBlockTotalCount => new FarmerVoteAndBlockTotalCount({ id: accountId, @@ -139,27 +135,26 @@ export const createFarmerVoteAndBlockTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateFarmerVoteAndBlockTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): FarmerVoteAndBlockTotalCount => { - const farmerVoteAndBlockTotalCount = - cache.farmerVoteAndBlockTotalCount.get(accountId); + const farmerVoteAndBlockTotalCount = cache.farmerVoteAndBlockTotalCount.get(accountId) if (!farmerVoteAndBlockTotalCount) - return createFarmerVoteAndBlockTotalCount(block, accountId, props); + return createFarmerVoteAndBlockTotalCount(block, accountId, props) - return farmerVoteAndBlockTotalCount; -}; + return farmerVoteAndBlockTotalCount +} export const createFarmerVoteAndBlockTotalValue = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): FarmerVoteAndBlockTotalValue => new FarmerVoteAndBlockTotalValue({ id: accountId, @@ -169,19 +164,18 @@ export const createFarmerVoteAndBlockTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateFarmerVoteAndBlockTotalValue = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): FarmerVoteAndBlockTotalValue => { - const farmerVoteAndBlockTotalValue = - cache.farmerVoteAndBlockTotalValue.get(accountId); + const farmerVoteAndBlockTotalValue = cache.farmerVoteAndBlockTotalValue.get(accountId) if (!farmerVoteAndBlockTotalValue) - return createFarmerVoteAndBlockTotalValue(block, accountId, props); + return createFarmerVoteAndBlockTotalValue(block, accountId, props) - return farmerVoteAndBlockTotalValue; -}; + return farmerVoteAndBlockTotalValue +} diff --git a/indexers/leaderboard-squid/src/storage/nominator.ts b/indexers/leaderboard-squid/src/storage/nominator.ts index 89111678b..1832338f6 100644 --- a/indexers/leaderboard-squid/src/storage/nominator.ts +++ b/indexers/leaderboard-squid/src/storage/nominator.ts @@ -2,15 +2,15 @@ import { NominatorDepositsTotalCount, NominatorDepositsTotalValue, NominatorWithdrawalsTotalCount, -} from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber, getTimestamp } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' export const createNominatorDepositsTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): NominatorDepositsTotalCount => new NominatorDepositsTotalCount({ id: accountId, @@ -20,27 +20,26 @@ export const createNominatorDepositsTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateNominatorDepositsTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): NominatorDepositsTotalCount => { - const nominatorDepositsTotalCount = - cache.nominatorDepositsTotalCount.get(accountId); + const nominatorDepositsTotalCount = cache.nominatorDepositsTotalCount.get(accountId) if (!nominatorDepositsTotalCount) - return createNominatorDepositsTotalCount(block, accountId, props); + return createNominatorDepositsTotalCount(block, accountId, props) - return nominatorDepositsTotalCount; -}; + return nominatorDepositsTotalCount +} export const createNominatorDepositsTotalValue = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): NominatorDepositsTotalValue => new NominatorDepositsTotalValue({ id: accountId, @@ -50,27 +49,26 @@ export const createNominatorDepositsTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateNominatorDepositsTotalValue = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): NominatorDepositsTotalValue => { - const nominatorDepositsTotalValue = - cache.nominatorDepositsTotalValue.get(accountId); + const nominatorDepositsTotalValue = cache.nominatorDepositsTotalValue.get(accountId) if (!nominatorDepositsTotalValue) - return createNominatorDepositsTotalValue(block, accountId, props); + return createNominatorDepositsTotalValue(block, accountId, props) - return nominatorDepositsTotalValue; -}; + return nominatorDepositsTotalValue +} export const createNominatorWithdrawalsTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): NominatorWithdrawalsTotalCount => new NominatorWithdrawalsTotalCount({ id: accountId, @@ -80,19 +78,18 @@ export const createNominatorWithdrawalsTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateNominatorWithdrawalsTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): NominatorWithdrawalsTotalCount => { - const nominatorWithdrawalsTotalCount = - cache.nominatorWithdrawalsTotalCount.get(accountId); + const nominatorWithdrawalsTotalCount = cache.nominatorWithdrawalsTotalCount.get(accountId) if (!nominatorWithdrawalsTotalCount) - return createNominatorWithdrawalsTotalCount(block, accountId, props); + return createNominatorWithdrawalsTotalCount(block, accountId, props) - return nominatorWithdrawalsTotalCount; -}; + return nominatorWithdrawalsTotalCount +} diff --git a/indexers/leaderboard-squid/src/storage/operator.ts b/indexers/leaderboard-squid/src/storage/operator.ts index 843211fef..44e99e244 100644 --- a/indexers/leaderboard-squid/src/storage/operator.ts +++ b/indexers/leaderboard-squid/src/storage/operator.ts @@ -5,15 +5,15 @@ import { OperatorTotalRewardsCollected, OperatorTotalTaxCollected, OperatorWithdrawalsTotalCount, -} from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber, getTimestamp } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' export const createOperatorTotalRewardsCollected = ( block: CtxBlock, operatorId: string, - props: Partial + props: Partial, ): OperatorTotalRewardsCollected => new OperatorTotalRewardsCollected({ id: operatorId, @@ -23,27 +23,26 @@ export const createOperatorTotalRewardsCollected = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateOperatorTotalRewardsCollected = ( cache: Cache, block: CtxBlock, operatorId: string, - props: Partial = {} + props: Partial = {}, ): OperatorTotalRewardsCollected => { - const operatorTotalRewardsCollected = - cache.operatorTotalRewardsCollected.get(operatorId); + const operatorTotalRewardsCollected = cache.operatorTotalRewardsCollected.get(operatorId) if (!operatorTotalRewardsCollected) - return createOperatorTotalRewardsCollected(block, operatorId, props); + return createOperatorTotalRewardsCollected(block, operatorId, props) - return operatorTotalRewardsCollected; -}; + return operatorTotalRewardsCollected +} export const createOperatorTotalTaxCollected = ( block: CtxBlock, operatorId: string, - props: Partial + props: Partial, ): OperatorTotalTaxCollected => new OperatorTotalTaxCollected({ id: operatorId, @@ -53,27 +52,25 @@ export const createOperatorTotalTaxCollected = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateOperatorTotalTaxCollected = ( cache: Cache, block: CtxBlock, operatorId: string, - props: Partial = {} + props: Partial = {}, ): OperatorTotalTaxCollected => { - const operatorTotalTaxCollected = - cache.operatorTotalTaxCollected.get(operatorId); + const operatorTotalTaxCollected = cache.operatorTotalTaxCollected.get(operatorId) - if (!operatorTotalTaxCollected) - return createOperatorTotalTaxCollected(block, operatorId, props); + if (!operatorTotalTaxCollected) return createOperatorTotalTaxCollected(block, operatorId, props) - return operatorTotalTaxCollected; -}; + return operatorTotalTaxCollected +} export const createOperatorBundleTotalCount = ( block: CtxBlock, operatorId: string, - props: Partial + props: Partial, ): OperatorBundleTotalCount => new OperatorBundleTotalCount({ id: operatorId, @@ -83,27 +80,25 @@ export const createOperatorBundleTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateOperatorBundleTotalCount = ( cache: Cache, block: CtxBlock, operatorId: string, - props: Partial = {} + props: Partial = {}, ): OperatorBundleTotalCount => { - const operatorBundleTotalCount = - cache.operatorBundleTotalCount.get(operatorId); + const operatorBundleTotalCount = cache.operatorBundleTotalCount.get(operatorId) - if (!operatorBundleTotalCount) - return createOperatorBundleTotalCount(block, operatorId, props); + if (!operatorBundleTotalCount) return createOperatorBundleTotalCount(block, operatorId, props) - return operatorBundleTotalCount; -}; + return operatorBundleTotalCount +} export const createOperatorDepositsTotalCount = ( block: CtxBlock, operatorId: string, - props: Partial + props: Partial, ): OperatorDepositsTotalCount => new OperatorDepositsTotalCount({ id: operatorId, @@ -113,27 +108,25 @@ export const createOperatorDepositsTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateOperatorDepositsTotalCount = ( cache: Cache, block: CtxBlock, operatorId: string, - props: Partial = {} + props: Partial = {}, ): OperatorDepositsTotalCount => { - const operatorDepositsTotalCount = - cache.operatorDepositsTotalCount.get(operatorId); + const operatorDepositsTotalCount = cache.operatorDepositsTotalCount.get(operatorId) - if (!operatorDepositsTotalCount) - return createOperatorDepositsTotalCount(block, operatorId, props); + if (!operatorDepositsTotalCount) return createOperatorDepositsTotalCount(block, operatorId, props) - return operatorDepositsTotalCount; -}; + return operatorDepositsTotalCount +} export const createOperatorDepositsTotalValue = ( block: CtxBlock, operatorId: string, - props: Partial + props: Partial, ): OperatorDepositsTotalValue => new OperatorDepositsTotalValue({ id: operatorId, @@ -143,27 +136,25 @@ export const createOperatorDepositsTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateOperatorDepositsTotalValue = ( cache: Cache, block: CtxBlock, operatorId: string, - props: Partial = {} + props: Partial = {}, ): OperatorDepositsTotalValue => { - const operatorDepositsTotalValue = - cache.operatorDepositsTotalValue.get(operatorId); + const operatorDepositsTotalValue = cache.operatorDepositsTotalValue.get(operatorId) - if (!operatorDepositsTotalValue) - return createOperatorDepositsTotalValue(block, operatorId, props); + if (!operatorDepositsTotalValue) return createOperatorDepositsTotalValue(block, operatorId, props) - return operatorDepositsTotalValue; -}; + return operatorDepositsTotalValue +} export const createOperatorWithdrawalsTotalCount = ( block: CtxBlock, operatorId: string, - props: Partial + props: Partial, ): OperatorWithdrawalsTotalCount => new OperatorWithdrawalsTotalCount({ id: operatorId, @@ -173,19 +164,18 @@ export const createOperatorWithdrawalsTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateOperatorWithdrawalsTotalCount = ( cache: Cache, block: CtxBlock, operatorId: string, - props: Partial = {} + props: Partial = {}, ): OperatorWithdrawalsTotalCount => { - const operatorWithdrawalsTotalCount = - cache.operatorWithdrawalsTotalCount.get(operatorId); + const operatorWithdrawalsTotalCount = cache.operatorWithdrawalsTotalCount.get(operatorId) if (!operatorWithdrawalsTotalCount) - return createOperatorWithdrawalsTotalCount(block, operatorId, props); + return createOperatorWithdrawalsTotalCount(block, operatorId, props) - return operatorWithdrawalsTotalCount; -}; + return operatorWithdrawalsTotalCount +} diff --git a/indexers/leaderboard-squid/src/types/balances/calls.ts b/indexers/leaderboard-squid/src/types/balances/calls.ts deleted file mode 100644 index 03fbec1ea..000000000 --- a/indexers/leaderboard-squid/src/types/balances/calls.ts +++ /dev/null @@ -1,119 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v5 from '../v5' - -export const transferAllowDeath = { - name: 'Balances.transfer_allow_death', - /** - * See [`Pallet::transfer_allow_death`]. - */ - v0: new CallType( - 'Balances.transfer_allow_death', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const forceTransfer = { - name: 'Balances.force_transfer', - /** - * See [`Pallet::force_transfer`]. - */ - v0: new CallType( - 'Balances.force_transfer', - sts.struct({ - source: v0.MultiAddress, - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferKeepAlive = { - name: 'Balances.transfer_keep_alive', - /** - * See [`Pallet::transfer_keep_alive`]. - */ - v0: new CallType( - 'Balances.transfer_keep_alive', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferAll = { - name: 'Balances.transfer_all', - /** - * See [`Pallet::transfer_all`]. - */ - v0: new CallType( - 'Balances.transfer_all', - sts.struct({ - dest: v0.MultiAddress, - keepAlive: sts.boolean(), - }) - ), -} - -export const forceUnreserve = { - name: 'Balances.force_unreserve', - /** - * See [`Pallet::force_unreserve`]. - */ - v0: new CallType( - 'Balances.force_unreserve', - sts.struct({ - who: v0.MultiAddress, - amount: sts.bigint(), - }) - ), -} - -export const upgradeAccounts = { - name: 'Balances.upgrade_accounts', - /** - * See [`Pallet::upgrade_accounts`]. - */ - v0: new CallType( - 'Balances.upgrade_accounts', - sts.struct({ - who: sts.array(() => v0.AccountId32), - }) - ), -} - -export const forceSetBalance = { - name: 'Balances.force_set_balance', - /** - * See [`Pallet::force_set_balance`]. - */ - v0: new CallType( - 'Balances.force_set_balance', - sts.struct({ - who: v0.MultiAddress, - newFree: sts.bigint(), - }) - ), -} - -export const forceAdjustTotalIssuance = { - name: 'Balances.force_adjust_total_issuance', - /** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - */ - v5: new CallType( - 'Balances.force_adjust_total_issuance', - sts.struct({ - direction: v5.AdjustmentDirection, - delta: sts.bigint(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/balances/constants.ts b/indexers/leaderboard-squid/src/types/balances/constants.ts deleted file mode 100644 index 5cab2c7e3..000000000 --- a/indexers/leaderboard-squid/src/types/balances/constants.ts +++ /dev/null @@ -1,59 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const existentialDeposit = { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - */ - v0: new ConstantType( - 'Balances.ExistentialDeposit', - sts.bigint() - ), -} - -export const maxLocks = { - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - */ - v0: new ConstantType( - 'Balances.MaxLocks', - sts.number() - ), -} - -export const maxReserves = { - /** - * The maximum number of named reserves that can exist on an account. - */ - v0: new ConstantType( - 'Balances.MaxReserves', - sts.number() - ), -} - -export const maxHolds = { - /** - * The maximum number of holds that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxHolds', - sts.number() - ), -} - -export const maxFreezes = { - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxFreezes', - sts.number() - ), -} diff --git a/indexers/leaderboard-squid/src/types/balances/events.ts b/indexers/leaderboard-squid/src/types/balances/events.ts deleted file mode 100644 index fda7f6e59..000000000 --- a/indexers/leaderboard-squid/src/types/balances/events.ts +++ /dev/null @@ -1,312 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const endowed = { - name: 'Balances.Endowed', - /** - * An account was created with some free balance. - */ - v0: new EventType( - 'Balances.Endowed', - sts.struct({ - account: v0.AccountId32, - freeBalance: sts.bigint(), - }) - ), -} - -export const dustLost = { - name: 'Balances.DustLost', - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ - v0: new EventType( - 'Balances.DustLost', - sts.struct({ - account: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const transfer = { - name: 'Balances.Transfer', - /** - * Transfer succeeded. - */ - v0: new EventType( - 'Balances.Transfer', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const balanceSet = { - name: 'Balances.BalanceSet', - /** - * A balance was set by root. - */ - v0: new EventType( - 'Balances.BalanceSet', - sts.struct({ - who: v0.AccountId32, - free: sts.bigint(), - }) - ), -} - -export const reserved = { - name: 'Balances.Reserved', - /** - * Some balance was reserved (moved from free to reserved). - */ - v0: new EventType( - 'Balances.Reserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unreserved = { - name: 'Balances.Unreserved', - /** - * Some balance was unreserved (moved from reserved to free). - */ - v0: new EventType( - 'Balances.Unreserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const reserveRepatriated = { - name: 'Balances.ReserveRepatriated', - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ - v0: new EventType( - 'Balances.ReserveRepatriated', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - destinationStatus: v0.BalanceStatus, - }) - ), -} - -export const deposit = { - name: 'Balances.Deposit', - /** - * Some amount was deposited (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Deposit', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const withdraw = { - name: 'Balances.Withdraw', - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Withdraw', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const slashed = { - name: 'Balances.Slashed', - /** - * Some amount was removed from the account (e.g. for misbehavior). - */ - v0: new EventType( - 'Balances.Slashed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const minted = { - name: 'Balances.Minted', - /** - * Some amount was minted into an account. - */ - v0: new EventType( - 'Balances.Minted', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const burned = { - name: 'Balances.Burned', - /** - * Some amount was burned from an account. - */ - v0: new EventType( - 'Balances.Burned', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const suspended = { - name: 'Balances.Suspended', - /** - * Some amount was suspended from an account (it can be restored later). - */ - v0: new EventType( - 'Balances.Suspended', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const restored = { - name: 'Balances.Restored', - /** - * Some amount was restored into an account. - */ - v0: new EventType( - 'Balances.Restored', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const upgraded = { - name: 'Balances.Upgraded', - /** - * An account was upgraded. - */ - v0: new EventType( - 'Balances.Upgraded', - sts.struct({ - who: v0.AccountId32, - }) - ), -} - -export const issued = { - name: 'Balances.Issued', - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ - v0: new EventType( - 'Balances.Issued', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const rescinded = { - name: 'Balances.Rescinded', - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ - v0: new EventType( - 'Balances.Rescinded', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const locked = { - name: 'Balances.Locked', - /** - * Some balance was locked. - */ - v0: new EventType( - 'Balances.Locked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unlocked = { - name: 'Balances.Unlocked', - /** - * Some balance was unlocked. - */ - v0: new EventType( - 'Balances.Unlocked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const frozen = { - name: 'Balances.Frozen', - /** - * Some balance was frozen. - */ - v0: new EventType( - 'Balances.Frozen', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const thawed = { - name: 'Balances.Thawed', - /** - * Some balance was thawed. - */ - v0: new EventType( - 'Balances.Thawed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const totalIssuanceForced = { - name: 'Balances.TotalIssuanceForced', - /** - * The `TotalIssuance` was forcefully changed. - */ - v5: new EventType( - 'Balances.TotalIssuanceForced', - sts.struct({ - old: sts.bigint(), - new: sts.bigint(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/balances/storage.ts b/indexers/leaderboard-squid/src/types/balances/storage.ts deleted file mode 100644 index 5f4a19212..000000000 --- a/indexers/leaderboard-squid/src/types/balances/storage.ts +++ /dev/null @@ -1,253 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const totalIssuance = { - /** - * The total units issued in the system. - */ - v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, -} - -/** - * The total units issued in the system. - */ -export interface TotalIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const inactiveIssuance = { - /** - * The total units of outstanding deactivated balance in the system. - */ - v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, -} - -/** - * The total units of outstanding deactivated balance in the system. - */ -export interface InactiveIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const account = { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ - v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, -} - -/** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountData - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> -} - -export const locks = { - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ - v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, -} - -/** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ -export interface LocksV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BalanceLock[] - get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> -} - -export const reserves = { - /** - * Named reserves on some account balances. - */ - v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, -} - -/** - * Named reserves on some account balances. - */ -export interface ReservesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.ReserveData[] - get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> -} - -export const holds = { - /** - * Holds on account balances. - */ - v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, - /** - * Holds on account balances. - */ - v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, - /** - * Holds on account balances. - */ - v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, -} - -/** - * Holds on account balances. - */ -export interface HoldsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.IdAmount[] - get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.IdAmount[] - get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> - getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.IdAmount[] - get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> - getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> -} - -export const freezes = { - /** - * Freeze locks on account balances. - */ - v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, -} - -/** - * Freeze locks on account balances. - */ -export interface FreezesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Type_152[] - get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> -} diff --git a/indexers/leaderboard-squid/src/types/calls.ts b/indexers/leaderboard-squid/src/types/calls.ts deleted file mode 100644 index 92374c8bf..000000000 --- a/indexers/leaderboard-squid/src/types/calls.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * as system from './system/calls' -export * as subspace from './subspace/calls' -export * as balances from './balances/calls' -export * as domains from './domains/calls' -export * as rewards from './rewards/calls' diff --git a/indexers/leaderboard-squid/src/types/constants.ts b/indexers/leaderboard-squid/src/types/constants.ts deleted file mode 100644 index bac116dd0..000000000 --- a/indexers/leaderboard-squid/src/types/constants.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * as system from './system/constants' -export * as subspace from './subspace/constants' -export * as rewards from './rewards/constants' -export * as balances from './balances/constants' -export * as transactionFees from './transaction-fees/constants' -export * as transactionPayment from './transaction-payment/constants' -export * as domains from './domains/constants' diff --git a/indexers/leaderboard-squid/src/types/domains/calls.ts b/indexers/leaderboard-squid/src/types/domains/calls.ts deleted file mode 100644 index 3ecf1398b..000000000 --- a/indexers/leaderboard-squid/src/types/domains/calls.ts +++ /dev/null @@ -1,278 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), - v5: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v5.Bundle, - }) - ), -} - -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), - v5: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v5.FraudProof, - }) - ), -} - -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), - v5: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v5.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), - v5: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v5.DomainId, - amount: sts.bigint(), - config: v5.OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }) - ), -} - -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), -} - -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), -} - -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), -} - -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), -} - -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), -} - -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const unlockNominator = { - name: 'Domains.unlock_nominator', - /** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ - v5: new CallType( - 'Domains.unlock_nominator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const setPermissionedActionAllowedBy = { - name: 'Domains.set_permissioned_action_allowed_by', - /** - * Update permissioned action allowed by storage by Sudo. - */ - v5: new CallType( - 'Domains.set_permissioned_action_allowed_by', - sts.struct({ - permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/domains/constants.ts b/indexers/leaderboard-squid/src/types/domains/constants.ts deleted file mode 100644 index a26b47666..000000000 --- a/indexers/leaderboard-squid/src/types/domains/constants.ts +++ /dev/null @@ -1,213 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), -} diff --git a/indexers/leaderboard-squid/src/types/domains/events.ts b/indexers/leaderboard-squid/src/types/domains/events.ts deleted file mode 100644 index d6551e7d0..000000000 --- a/indexers/leaderboard-squid/src/types/domains/events.ts +++ /dev/null @@ -1,250 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), - v5: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v5.RuntimeType, - }) - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), - v5: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v5.SlashedReason, - }) - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/domains/storage.ts b/indexers/leaderboard-squid/src/types/domains/storage.ts deleted file mode 100644 index 495ae0e03..000000000 --- a/indexers/leaderboard-squid/src/types/domains/storage.ts +++ /dev/null @@ -1,1226 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, -} - -/** - * Bundles submitted successfully in current block. - */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, -} - -/** - * Fraud proofs submitted successfully in current block. - */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, -} - -/** - * Stores the next runtime id. - */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, -} - -/** - * Stores the next evm chain id. - */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, - v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export interface RuntimeRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, -} - -/** - * Indexes operator signing key against OperatorId. - */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, -} - -/** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, -} - -/** - * Share price for the operator pool at the end of Domain epoch. - */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, -} - -/** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, -} - -/** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, -} - -/** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, -} - -/** - * Stores the next domain id. - */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, - /** - * The domain registry - */ - v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, -} - -/** - * The domain registry - */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> - getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, -} - -/** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> - getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, -} - -/** - * The head receipt number of each domain - */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, -} - -/** - * The latest confirmed block number of each domain. - */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, -} - -/** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, -} - -/** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, -} - -/** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, -} - -/** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, -} - -/** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, -} - -/** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, -} - -/** - * Storage to hold all the domain's latest confirmed block. - */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, -} - -/** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} - -export const operatorHighestSlot = { - /** - * The highest slot of the bundle submitted by an operator - */ - v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, -} - -/** - * The highest slot of the bundle submitted by an operator - */ -export interface OperatorHighestSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: bigint): Promise<(bigint | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> -} - -export const operatorBundleSlot = { - /** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ - v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, -} - -/** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ -export interface OperatorBundleSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint[] - get(block: Block, key: bigint): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> -} - -export const permissionedActionAllowedBy = { - /** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ - v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, -} - -/** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ -export interface PermissionedActionAllowedByV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> -} - -export const accumulatedTreasuryFunds = { - /** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ - v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, -} - -/** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ -export interface AccumulatedTreasuryFundsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const domainRuntimeUpgradeRecords = { - /** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ - v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, -} - -/** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ -export interface DomainRuntimeUpgradeRecordsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] - get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> - getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> -} - -export const domainRuntimeUpgrades = { - /** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ - v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, -} - -/** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ -export interface DomainRuntimeUpgradesV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number[] - get(block: Block): Promise<(number[] | undefined)> -} diff --git a/indexers/leaderboard-squid/src/types/events.ts b/indexers/leaderboard-squid/src/types/events.ts deleted file mode 100644 index 9ec91fd9b..000000000 --- a/indexers/leaderboard-squid/src/types/events.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * as system from './system/events' -export * as subspace from './subspace/events' -export * as rewards from './rewards/events' -export * as balances from './balances/events' -export * as transactionFees from './transaction-fees/events' -export * as transactionPayment from './transaction-payment/events' -export * as domains from './domains/events' diff --git a/indexers/leaderboard-squid/src/types/index.ts b/indexers/leaderboard-squid/src/types/index.ts deleted file mode 100644 index a9093352d..000000000 --- a/indexers/leaderboard-squid/src/types/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as v0 from './v0' -export * as v5 from './v5' -export * as v1 from './v1' -export * as v3 from './v3' -export * as events from './events' -export * as calls from './calls' -export * as constants from './constants' -export * as storage from './storage' diff --git a/indexers/leaderboard-squid/src/types/rewards/calls.ts b/indexers/leaderboard-squid/src/types/rewards/calls.ts deleted file mode 100644 index b8486afff..000000000 --- a/indexers/leaderboard-squid/src/types/rewards/calls.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const updateIssuanceParams = { - name: 'Rewards.update_issuance_params', - /** - * See [`Pallet::update_issuance_params`]. - */ - v3: new CallType( - 'Rewards.update_issuance_params', - sts.struct({ - proposerSubsidyPoints: sts.array(() => v3.RewardPoint), - voterSubsidyPoints: sts.array(() => v3.RewardPoint), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/rewards/constants.ts b/indexers/leaderboard-squid/src/types/rewards/constants.ts deleted file mode 100644 index e1004ecc1..000000000 --- a/indexers/leaderboard-squid/src/types/rewards/constants.ts +++ /dev/null @@ -1,61 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const blockReward = { - /** - * Fixed reward for block producer. - */ - v0: new ConstantType( - 'Rewards.BlockReward', - sts.bigint() - ), -} - -export const voteReward = { - /** - * Fixed reward for voter. - */ - v0: new ConstantType( - 'Rewards.VoteReward', - sts.bigint() - ), -} - -export const avgBlockspaceUsageNumBlocks = { - /** - * Number of blocks over which to compute average blockspace usage - */ - v3: new ConstantType( - 'Rewards.AvgBlockspaceUsageNumBlocks', - sts.number() - ), -} - -export const transactionByteFee = { - /** - * Cost of one byte of blockspace - */ - v3: new ConstantType( - 'Rewards.TransactionByteFee', - sts.bigint() - ), -} - -export const maxRewardPoints = { - /** - * Max number of reward points - */ - v3: new ConstantType( - 'Rewards.MaxRewardPoints', - sts.number() - ), -} - -export const proposerTaxOnVotes = { - /** - * Tax of the proposer on vote rewards - */ - v3: new ConstantType( - 'Rewards.ProposerTaxOnVotes', - sts.tuple(() => [sts.number(), sts.number()]) - ), -} diff --git a/indexers/leaderboard-squid/src/types/rewards/events.ts b/indexers/leaderboard-squid/src/types/rewards/events.ts deleted file mode 100644 index 5b01a1694..000000000 --- a/indexers/leaderboard-squid/src/types/rewards/events.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockReward = { - name: 'Rewards.BlockReward', - /** - * Issued reward for the block author. - */ - v0: new EventType( - 'Rewards.BlockReward', - sts.struct({ - blockAuthor: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} - -export const voteReward = { - name: 'Rewards.VoteReward', - /** - * Issued reward for the voter. - */ - v0: new EventType( - 'Rewards.VoteReward', - sts.struct({ - voter: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/rewards/storage.ts b/indexers/leaderboard-squid/src/types/rewards/storage.ts deleted file mode 100644 index 971093421..000000000 --- a/indexers/leaderboard-squid/src/types/rewards/storage.ts +++ /dev/null @@ -1,82 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const avgBlockspaceUsage = { - /** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ - v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, -} - -/** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ -export interface AvgBlockspaceUsageV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const rewardsEnabled = { - /** - * Whether rewards are enabled - */ - v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, -} - -/** - * Whether rewards are enabled - */ -export interface RewardsEnabledV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const remainingIssuance = { - /** - * Tokens left to issue to farmers at any given time - */ - v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, -} - -/** - * Tokens left to issue to farmers at any given time - */ -export interface RemainingIssuanceV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const proposerSubsidyPoints = { - /** - * Block proposer subsidy parameters - */ - v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, -} - -/** - * Block proposer subsidy parameters - */ -export interface ProposerSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} - -export const voterSubsidyPoints = { - /** - * Voter subsidy parameters - */ - v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, -} - -/** - * Voter subsidy parameters - */ -export interface VoterSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} diff --git a/indexers/leaderboard-squid/src/types/storage.ts b/indexers/leaderboard-squid/src/types/storage.ts deleted file mode 100644 index f9f60a12b..000000000 --- a/indexers/leaderboard-squid/src/types/storage.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * as system from './system/storage' -export * as subspace from './subspace/storage' -export * as balances from './balances/storage' -export * as transactionFees from './transaction-fees/storage' -export * as transactionPayment from './transaction-payment/storage' -export * as domains from './domains/storage' -export * as rewards from './rewards/storage' diff --git a/indexers/leaderboard-squid/src/types/subspace/calls.ts b/indexers/leaderboard-squid/src/types/subspace/calls.ts deleted file mode 100644 index add70afae..000000000 --- a/indexers/leaderboard-squid/src/types/subspace/calls.ts +++ /dev/null @@ -1,79 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const reportEquivocation = { - name: 'Subspace.report_equivocation', - /** - * See [`Pallet::report_equivocation`]. - */ - v0: new CallType( - 'Subspace.report_equivocation', - sts.struct({ - equivocationProof: v0.EquivocationProof, - }) - ), -} - -export const storeSegmentHeaders = { - name: 'Subspace.store_segment_headers', - /** - * See [`Pallet::store_segment_headers`]. - */ - v0: new CallType( - 'Subspace.store_segment_headers', - sts.struct({ - segmentHeaders: sts.array(() => v0.SegmentHeader), - }) - ), -} - -export const enableSolutionRangeAdjustment = { - name: 'Subspace.enable_solution_range_adjustment', - /** - * See [`Pallet::enable_solution_range_adjustment`]. - */ - v0: new CallType( - 'Subspace.enable_solution_range_adjustment', - sts.struct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }) - ), -} - -export const vote = { - name: 'Subspace.vote', - /** - * See [`Pallet::vote`]. - */ - v0: new CallType( - 'Subspace.vote', - sts.struct({ - signedVote: v0.SignedVote, - }) - ), -} - -export const enableRewardsAt = { - name: 'Subspace.enable_rewards_at', - /** - * See [`Pallet::enable_rewards_at`]. - */ - v0: new CallType( - 'Subspace.enable_rewards_at', - sts.struct({ - enableRewardsAt: v0.EnableRewardsAt, - }) - ), -} - -export const enableAuthoringByAnyone = { - name: 'Subspace.enable_authoring_by_anyone', - /** - * See [`Pallet::enable_authoring_by_anyone`]. - */ - v0: new CallType( - 'Subspace.enable_authoring_by_anyone', - sts.unit() - ), -} diff --git a/indexers/leaderboard-squid/src/types/subspace/constants.ts b/indexers/leaderboard-squid/src/types/subspace/constants.ts deleted file mode 100644 index 555317b21..000000000 --- a/indexers/leaderboard-squid/src/types/subspace/constants.ts +++ /dev/null @@ -1,154 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockAuthoringDelay = { - /** - * Number of slots between slot arrival and when corresponding block can be produced. - * - * Practically this means future proof of time proof needs to be revealed this many slots - * ahead before block can be authored even though solution is available before that. - */ - v0: new ConstantType( - 'Subspace.BlockAuthoringDelay', - v0.Slot - ), -} - -export const potEntropyInjectionInterval = { - /** - * Interval, in blocks, between blockchain entropy injection into proof of time chain. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionInterval', - sts.number() - ), -} - -export const potEntropyInjectionLookbackDepth = { - /** - * Interval, in entropy injection intervals, where to take entropy for injection from. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionLookbackDepth', - sts.number() - ), -} - -export const potEntropyInjectionDelay = { - /** - * Delay after block, in slots, when entropy injection takes effect. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionDelay', - v0.Slot - ), -} - -export const eraDuration = { - /** - * The amount of time, in blocks, that each era should last. - * NOTE: Currently it is not possible to change the era duration after - * the chain has started. Attempting to do so will brick block production. - */ - v0: new ConstantType( - 'Subspace.EraDuration', - sts.number() - ), -} - -export const initialSolutionRange = { - /** - * Initial solution range used for challenges during the very first era. - */ - v0: new ConstantType( - 'Subspace.InitialSolutionRange', - sts.bigint() - ), -} - -export const slotProbability = { - /** - * How often in slots slots (on average, not counting collisions) will have a block. - * - * Expressed as a rational where the first member of the tuple is the - * numerator and the second is the denominator. The rational should - * represent a value between 0 and 1. - */ - v0: new ConstantType( - 'Subspace.SlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const confirmationDepthK = { - /** - * Depth `K` after which a block enters the recorded history (a global constant, as opposed - * to the client-dependent transaction confirmation depth `k`). - */ - v0: new ConstantType( - 'Subspace.ConfirmationDepthK', - sts.number() - ), -} - -export const recentSegments = { - /** - * Number of latest archived segments that are considered "recent history". - */ - v0: new ConstantType( - 'Subspace.RecentSegments', - v0.HistorySize - ), -} - -export const recentHistoryFraction = { - /** - * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. - */ - v0: new ConstantType( - 'Subspace.RecentHistoryFraction', - sts.tuple(() => [v0.HistorySize, v0.HistorySize]) - ), -} - -export const minSectorLifetime = { - /** - * Minimum lifetime of a plotted sector, measured in archived segment. - */ - v0: new ConstantType( - 'Subspace.MinSectorLifetime', - v0.HistorySize - ), -} - -export const expectedVotesPerBlock = { - /** - * Number of votes expected per block. - * - * This impacts solution range for votes in consensus. - */ - v0: new ConstantType( - 'Subspace.ExpectedVotesPerBlock', - sts.number() - ), -} - -export const maxPiecesInSector = { - /** - * How many pieces one sector is supposed to contain (max) - */ - v0: new ConstantType( - 'Subspace.MaxPiecesInSector', - sts.number() - ), -} - -export const blockSlotCount = { - /** - * Maximum number of block number to block slot mappings to keep (oldest pruned first). - */ - v3: new ConstantType( - 'Subspace.BlockSlotCount', - sts.number() - ), -} diff --git a/indexers/leaderboard-squid/src/types/subspace/events.ts b/indexers/leaderboard-squid/src/types/subspace/events.ts deleted file mode 100644 index 65427a471..000000000 --- a/indexers/leaderboard-squid/src/types/subspace/events.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const segmentHeaderStored = { - name: 'Subspace.SegmentHeaderStored', - /** - * Segment header was stored in blockchain history. - */ - v0: new EventType( - 'Subspace.SegmentHeaderStored', - sts.struct({ - segmentHeader: v0.SegmentHeader, - }) - ), -} - -export const farmerVote = { - name: 'Subspace.FarmerVote', - /** - * Farmer vote. - */ - v0: new EventType( - 'Subspace.FarmerVote', - sts.struct({ - publicKey: v0.Public, - rewardAddress: v0.AccountId32, - height: sts.number(), - parentHash: v0.H256, - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/subspace/storage.ts b/indexers/leaderboard-squid/src/types/subspace/storage.ts deleted file mode 100644 index 8c1220cc5..000000000 --- a/indexers/leaderboard-squid/src/types/subspace/storage.ts +++ /dev/null @@ -1,390 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const genesisSlot = { - /** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ - v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, -} - -/** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ -export interface GenesisSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const currentSlot = { - /** - * Current slot number. - */ - v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, -} - -/** - * Current slot number. - */ -export interface CurrentSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const potSlotIterations = { - /** - * Number of iterations for proof of time per slot - */ - v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, -} - -/** - * Number of iterations for proof of time per slot - */ -export interface PotSlotIterationsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.NonZeroU32 | undefined)> -} - -export const solutionRanges = { - /** - * Solution ranges used for challenges. - */ - v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, -} - -/** - * Solution ranges used for challenges. - */ -export interface SolutionRangesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.SolutionRanges - get(block: Block): Promise<(v0.SolutionRanges | undefined)> -} - -export const shouldAdjustSolutionRange = { - /** - * Storage to check if the solution range is to be adjusted for next era - */ - v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, -} - -/** - * Storage to check if the solution range is to be adjusted for next era - */ -export interface ShouldAdjustSolutionRangeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const nextSolutionRangeOverride = { - /** - * Override solution range during next update - */ - v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, -} - -/** - * Override solution range during next update - */ -export interface NextSolutionRangeOverrideV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> -} - -export const eraStartSlot = { - /** - * Slot at which current era started. - */ - v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, -} - -/** - * Slot at which current era started. - */ -export interface EraStartSlotV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const blockList = { - /** - * A set of blocked farmers keyed by their public key. - */ - v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, -} - -/** - * A set of blocked farmers keyed by their public key. - */ -export interface BlockListV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.Public): Promise<(null | undefined)> - getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.Public): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable - getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> -} - -export const segmentCommitment = { - /** - * Mapping from segment index to corresponding segment commitment of contained records. - */ - v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, -} - -/** - * Mapping from segment index to corresponding segment commitment of contained records. - */ -export interface SegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> - getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.SegmentIndex): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable - getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> -} - -export const counterForSegmentCommitment = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForSegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const didProcessSegmentHeaders = { - /** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, -} - -/** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ -export interface DidProcessSegmentHeadersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const parentVoteVerificationData = { - /** - * Storage of previous vote verification data, updated on each block during finalization. - */ - v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, -} - -/** - * Storage of previous vote verification data, updated on each block during finalization. - */ -export interface ParentVoteVerificationDataV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.VoteVerificationData | undefined)> -} - -export const parentBlockAuthorInfo = { - /** - * Parent block author information. - */ - v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, -} - -/** - * Parent block author information. - */ -export interface ParentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> -} - -export const enableRewards = { - /** - * Enable rewards since specified block number. - */ - v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, -} - -/** - * Enable rewards since specified block number. - */ -export interface EnableRewardsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const enableRewardsBelowSolutionRange = { - /** - * Enable rewards when solution range is below this threshold. - */ - v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, -} - -/** - * Enable rewards when solution range is below this threshold. - */ -export interface EnableRewardsBelowSolutionRangeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(bigint | undefined)> -} - -export const currentBlockAuthorInfo = { - /** - * Temporary value (cleared at block finalization) with block author information. - */ - v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, -} - -/** - * Temporary value (cleared at block finalization) with block author information. - */ -export interface CurrentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> -} - -export const parentBlockVoters = { - /** - * Voters in the parent block (set at the end of the block with current values). - */ - v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, -} - -/** - * Voters in the parent block (set at the end of the block with current values). - */ -export interface ParentBlockVotersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const currentBlockVoters = { - /** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ - v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, -} - -/** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ -export interface CurrentBlockVotersV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const potEntropy = { - /** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ - v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, -} - -/** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ -export interface PotEntropyV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v0.PotEntropyValue][] - get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> -} - -export const blockRandomness = { - /** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ - v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, -} - -/** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ -export interface BlockRandomnessV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Randomness | undefined)> -} - -export const allowAuthoringByAnyone = { - /** - * Allow block authoring by anyone or just root. - */ - v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, -} - -/** - * Allow block authoring by anyone or just root. - */ -export interface AllowAuthoringByAnyoneV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const rootPlotPublicKey = { - /** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ - v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, -} - -/** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ -export interface RootPlotPublicKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Public | undefined)> -} - -export const blockSlots = { - /** - * Bounded mapping from block number to slot - */ - v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, -} - -/** - * Bounded mapping from block number to slot - */ -export interface BlockSlotsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v3.Slot][] - get(block: Block): Promise<([number, v3.Slot][] | undefined)> -} diff --git a/indexers/leaderboard-squid/src/types/support.ts b/indexers/leaderboard-squid/src/types/support.ts deleted file mode 100644 index 456dfc2fb..000000000 --- a/indexers/leaderboard-squid/src/types/support.ts +++ /dev/null @@ -1,142 +0,0 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' -import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' -import assert from 'assert' - - -export {sts, Bytes, BitSequence, Option, Result} - - -export interface RuntimeCtx { - _runtime: Runtime -} - - -export interface Block extends RuntimeCtx { - hash: Bytes - height: number -} - - -interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } -} - - -export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } -} - - -export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } -} - - -export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } -} diff --git a/indexers/leaderboard-squid/src/types/system/calls.ts b/indexers/leaderboard-squid/src/types/system/calls.ts deleted file mode 100644 index 24f23464e..000000000 --- a/indexers/leaderboard-squid/src/types/system/calls.ts +++ /dev/null @@ -1,146 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const remark = { - name: 'System.remark', - /** - * See [`Pallet::remark`]. - */ - v0: new CallType( - 'System.remark', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const setHeapPages = { - name: 'System.set_heap_pages', - /** - * See [`Pallet::set_heap_pages`]. - */ - v0: new CallType( - 'System.set_heap_pages', - sts.struct({ - pages: sts.bigint(), - }) - ), -} - -export const setCode = { - name: 'System.set_code', - /** - * See [`Pallet::set_code`]. - */ - v0: new CallType( - 'System.set_code', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setCodeWithoutChecks = { - name: 'System.set_code_without_checks', - /** - * See [`Pallet::set_code_without_checks`]. - */ - v0: new CallType( - 'System.set_code_without_checks', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setStorage = { - name: 'System.set_storage', - /** - * See [`Pallet::set_storage`]. - */ - v0: new CallType( - 'System.set_storage', - sts.struct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }) - ), -} - -export const killStorage = { - name: 'System.kill_storage', - /** - * See [`Pallet::kill_storage`]. - */ - v0: new CallType( - 'System.kill_storage', - sts.struct({ - keys: sts.array(() => sts.bytes()), - }) - ), -} - -export const killPrefix = { - name: 'System.kill_prefix', - /** - * See [`Pallet::kill_prefix`]. - */ - v0: new CallType( - 'System.kill_prefix', - sts.struct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }) - ), -} - -export const remarkWithEvent = { - name: 'System.remark_with_event', - /** - * See [`Pallet::remark_with_event`]. - */ - v0: new CallType( - 'System.remark_with_event', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const authorizeUpgrade = { - name: 'System.authorize_upgrade', - /** - * See [`Pallet::authorize_upgrade`]. - */ - v0: new CallType( - 'System.authorize_upgrade', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const authorizeUpgradeWithoutChecks = { - name: 'System.authorize_upgrade_without_checks', - /** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ - v0: new CallType( - 'System.authorize_upgrade_without_checks', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const applyAuthorizedUpgrade = { - name: 'System.apply_authorized_upgrade', - /** - * See [`Pallet::apply_authorized_upgrade`]. - */ - v0: new CallType( - 'System.apply_authorized_upgrade', - sts.struct({ - code: sts.bytes(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/system/constants.ts b/indexers/leaderboard-squid/src/types/system/constants.ts deleted file mode 100644 index 653ab1df2..000000000 --- a/indexers/leaderboard-squid/src/types/system/constants.ts +++ /dev/null @@ -1,66 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockWeights = { - /** - * Block & extrinsics weights: base values and limits. - */ - v0: new ConstantType( - 'System.BlockWeights', - v0.BlockWeights - ), -} - -export const blockLength = { - /** - * The maximum length of a block (in bytes). - */ - v0: new ConstantType( - 'System.BlockLength', - v0.BlockLength - ), -} - -export const blockHashCount = { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - */ - v0: new ConstantType( - 'System.BlockHashCount', - sts.number() - ), -} - -export const dbWeight = { - /** - * The weight of runtime database operations the runtime can invoke. - */ - v0: new ConstantType( - 'System.DbWeight', - v0.RuntimeDbWeight - ), -} - -export const version = { - /** - * Get the chain's current version. - */ - v0: new ConstantType( - 'System.Version', - v0.RuntimeVersion - ), -} - -export const ss58Prefix = { - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - */ - v0: new ConstantType( - 'System.SS58Prefix', - sts.number() - ), -} diff --git a/indexers/leaderboard-squid/src/types/system/events.ts b/indexers/leaderboard-squid/src/types/system/events.ts deleted file mode 100644 index 2c8c5731b..000000000 --- a/indexers/leaderboard-squid/src/types/system/events.ts +++ /dev/null @@ -1,94 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const extrinsicSuccess = { - name: 'System.ExtrinsicSuccess', - /** - * An extrinsic completed successfully. - */ - v0: new EventType( - 'System.ExtrinsicSuccess', - sts.struct({ - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const extrinsicFailed = { - name: 'System.ExtrinsicFailed', - /** - * An extrinsic failed. - */ - v0: new EventType( - 'System.ExtrinsicFailed', - sts.struct({ - dispatchError: v0.DispatchError, - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const codeUpdated = { - name: 'System.CodeUpdated', - /** - * `:code` was updated. - */ - v0: new EventType( - 'System.CodeUpdated', - sts.unit() - ), -} - -export const newAccount = { - name: 'System.NewAccount', - /** - * A new account was created. - */ - v0: new EventType( - 'System.NewAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const killedAccount = { - name: 'System.KilledAccount', - /** - * An account was reaped. - */ - v0: new EventType( - 'System.KilledAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const remarked = { - name: 'System.Remarked', - /** - * On on-chain remark happened. - */ - v0: new EventType( - 'System.Remarked', - sts.struct({ - sender: v0.AccountId32, - hash: v0.H256, - }) - ), -} - -export const upgradeAuthorized = { - name: 'System.UpgradeAuthorized', - /** - * An upgrade was authorized. - */ - v0: new EventType( - 'System.UpgradeAuthorized', - sts.struct({ - codeHash: v0.H256, - checkVersion: sts.boolean(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/system/storage.ts b/indexers/leaderboard-squid/src/types/system/storage.ts deleted file mode 100644 index 9f776b387..000000000 --- a/indexers/leaderboard-squid/src/types/system/storage.ts +++ /dev/null @@ -1,405 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const account = { - /** - * The full account information for a particular account ID. - */ - v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, -} - -/** - * The full account information for a particular account ID. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountInfo - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountInfo | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> -} - -export const extrinsicCount = { - /** - * Total extrinsics count for the current block. - */ - v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, -} - -/** - * Total extrinsics count for the current block. - */ -export interface ExtrinsicCountV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockWeight = { - /** - * The current weight for the block. - */ - v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, -} - -/** - * The current weight for the block. - */ -export interface BlockWeightV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.PerDispatchClass - get(block: Block): Promise<(v0.PerDispatchClass | undefined)> -} - -export const allExtrinsicsLen = { - /** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ - v0: new StorageType('System.AllExtrinsicsLen', 'Optional', [], sts.number()) as AllExtrinsicsLenV0, -} - -/** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ -export interface AllExtrinsicsLenV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockHash = { - /** - * Map of block numbers to block hashes. - */ - v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, -} - -/** - * Map of block numbers to block hashes. - */ -export interface BlockHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block, key: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> -} - -export const extrinsicData = { - /** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ - v0: new StorageType('System.ExtrinsicData', 'Default', [sts.number()], sts.bytes()) as ExtrinsicDataV0, -} - -/** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ -export interface ExtrinsicDataV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: number): Promise<(Bytes | undefined)> - getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (Bytes | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (Bytes | undefined)][]> -} - -export const number = { - /** - * The current block number being processed. Set by `execute_block`. - */ - v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, -} - -/** - * The current block number being processed. Set by `execute_block`. - */ -export interface NumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const parentHash = { - /** - * Hash of the previous block. - */ - v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, -} - -/** - * Hash of the previous block. - */ -export interface ParentHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise<(v0.H256 | undefined)> -} - -export const digest = { - /** - * Digest of the current block, also part of the block header. - */ - v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, -} - -/** - * Digest of the current block, also part of the block header. - */ -export interface DigestV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Digest - get(block: Block): Promise<(v0.Digest | undefined)> -} - -export const events = { - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v0: new StorageType('System.Events', 'Default', [], sts.array(() => v0.EventRecord)) as EventsV0, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v1: new StorageType('System.Events', 'Default', [], sts.array(() => v1.EventRecord)) as EventsV1, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v5: new StorageType('System.Events', 'Default', [], sts.array(() => v5.EventRecord)) as EventsV5, -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.EventRecord[] - get(block: Block): Promise<(v0.EventRecord[] | undefined)> -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.EventRecord[] - get(block: Block): Promise<(v1.EventRecord[] | undefined)> -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v5.EventRecord[] - get(block: Block): Promise<(v5.EventRecord[] | undefined)> -} - -export const eventCount = { - /** - * The number of events in the `Events` list. - */ - v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, -} - -/** - * The number of events in the `Events` list. - */ -export interface EventCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const eventTopics = { - /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ - v0: new StorageType('System.EventTopics', 'Default', [v0.H256], sts.array(() => sts.tuple(() => [sts.number(), sts.number()]))) as EventTopicsV0, -} - -/** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ -export interface EventTopicsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, number][] - get(block: Block, key: v0.H256): Promise<([number, number][] | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> -} - -export const lastRuntimeUpgrade = { - /** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ - v0: new StorageType('System.LastRuntimeUpgrade', 'Optional', [], v0.LastRuntimeUpgradeInfo) as LastRuntimeUpgradeV0, -} - -/** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ -export interface LastRuntimeUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.LastRuntimeUpgradeInfo | undefined)> -} - -export const upgradedToU32RefCount = { - /** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ - v0: new StorageType('System.UpgradedToU32RefCount', 'Default', [], sts.boolean()) as UpgradedToU32RefCountV0, -} - -/** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ -export interface UpgradedToU32RefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const upgradedToTripleRefCount = { - /** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ - v0: new StorageType('System.UpgradedToTripleRefCount', 'Default', [], sts.boolean()) as UpgradedToTripleRefCountV0, -} - -/** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ -export interface UpgradedToTripleRefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const executionPhase = { - /** - * The execution phase of the block. - */ - v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, -} - -/** - * The execution phase of the block. - */ -export interface ExecutionPhaseV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Phase | undefined)> -} - -export const authorizedUpgrade = { - /** - * `Some` if a code upgrade has been authorized. - */ - v0: new StorageType('System.AuthorizedUpgrade', 'Optional', [], v0.CodeUpgradeAuthorization) as AuthorizedUpgradeV0, -} - -/** - * `Some` if a code upgrade has been authorized. - */ -export interface AuthorizedUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CodeUpgradeAuthorization | undefined)> -} - -export const inherentsApplied = { - /** - * Whether all inherents have been applied. - */ - v5: new StorageType('System.InherentsApplied', 'Default', [], sts.boolean()) as InherentsAppliedV5, -} - -/** - * Whether all inherents have been applied. - */ -export interface InherentsAppliedV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} diff --git a/indexers/leaderboard-squid/src/types/transaction-fees/constants.ts b/indexers/leaderboard-squid/src/types/transaction-fees/constants.ts deleted file mode 100644 index 60de86b39..000000000 --- a/indexers/leaderboard-squid/src/types/transaction-fees/constants.ts +++ /dev/null @@ -1,43 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const minReplicationFactor = { - /** - * Minimum desired number of replicas of the blockchain to be stored by the network, - * impacts storage fees. - */ - v0: new ConstantType( - 'TransactionFees.MinReplicationFactor', - sts.number() - ), -} - -export const creditSupply = { - /** - * How many credits there is in circulation. - */ - v0: new ConstantType( - 'TransactionFees.CreditSupply', - sts.bigint() - ), -} - -export const totalSpacePledged = { - /** - * How much space there is on the network. - */ - v0: new ConstantType( - 'TransactionFees.TotalSpacePledged', - sts.bigint() - ), -} - -export const blockchainHistorySize = { - /** - * How big is the history of the blockchain in archived state (thus includes erasure - * coding, but not replication). - */ - v0: new ConstantType( - 'TransactionFees.BlockchainHistorySize', - sts.bigint() - ), -} diff --git a/indexers/leaderboard-squid/src/types/transaction-fees/events.ts b/indexers/leaderboard-squid/src/types/transaction-fees/events.ts deleted file mode 100644 index 4726ccd18..000000000 --- a/indexers/leaderboard-squid/src/types/transaction-fees/events.ts +++ /dev/null @@ -1,54 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockFees = { - name: 'TransactionFees.BlockFees', - /** - * Storage fees. - */ - v0: new EventType( - 'TransactionFees.BlockFees', - sts.struct({ - /** - * Block author that received the fees. - */ - who: v0.AccountId32, - /** - * Amount of collected storage fees. - */ - storage: sts.bigint(), - /** - * Amount of collected compute fees. - */ - compute: sts.bigint(), - /** - * Amount of collected tips. - */ - tips: sts.bigint(), - }) - ), -} - -export const burnedBlockFees = { - name: 'TransactionFees.BurnedBlockFees', - /** - * Fees burned due to equivocated block author. - */ - v0: new EventType( - 'TransactionFees.BurnedBlockFees', - sts.struct({ - /** - * Amount of burned storage fees. - */ - storage: sts.bigint(), - /** - * Amount of burned compute fees. - */ - compute: sts.bigint(), - /** - * Amount of burned tips. - */ - tips: sts.bigint(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/transaction-fees/storage.ts b/indexers/leaderboard-squid/src/types/transaction-fees/storage.ts deleted file mode 100644 index 34c003453..000000000 --- a/indexers/leaderboard-squid/src/types/transaction-fees/storage.ts +++ /dev/null @@ -1,86 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transactionByteFee = { - /** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ - v0: new StorageType('TransactionFees.TransactionByteFee', 'Default', [], v0.BlockTransactionByteFee) as TransactionByteFeeV0, -} - -/** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ -export interface TransactionByteFeeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BlockTransactionByteFee - get(block: Block): Promise<(v0.BlockTransactionByteFee | undefined)> -} - -export const isDuringBlockExecution = { - /** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ - v0: new StorageType('TransactionFees.IsDuringBlockExecution', 'Default', [], sts.boolean()) as IsDuringBlockExecutionV0, -} - -/** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ -export interface IsDuringBlockExecutionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const blockAuthor = { - /** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.BlockAuthor', 'Optional', [], v0.AccountId32) as BlockAuthorV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ -export interface BlockAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.AccountId32 | undefined)> -} - -export const collectedBlockFees = { - /** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.CollectedBlockFees', 'Optional', [], v0.CollectedFees) as CollectedBlockFeesV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ -export interface CollectedBlockFeesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CollectedFees | undefined)> -} diff --git a/indexers/leaderboard-squid/src/types/transaction-payment/constants.ts b/indexers/leaderboard-squid/src/types/transaction-payment/constants.ts deleted file mode 100644 index 92856764a..000000000 --- a/indexers/leaderboard-squid/src/types/transaction-payment/constants.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const operationalFeeMultiplier = { - /** - * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their - * `priority` - * - * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later - * added to a tip component in regular `priority` calculations. - * It means that a `Normal` transaction can front-run a similarly-sized `Operational` - * extrinsic (with no tip), by including a tip value greater than the virtual tip. - * - * ```rust,ignore - * // For `Normal` - * let priority = priority_calc(tip); - * - * // For `Operational` - * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; - * let priority = priority_calc(tip + virtual_tip); - * ``` - * - * Note that since we use `final_fee` the multiplier applies also to the regular `tip` - * sent with the transaction. So, not only does the transaction get a priority bump based - * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` - * transactions. - */ - v0: new ConstantType( - 'TransactionPayment.OperationalFeeMultiplier', - sts.number() - ), -} diff --git a/indexers/leaderboard-squid/src/types/transaction-payment/events.ts b/indexers/leaderboard-squid/src/types/transaction-payment/events.ts deleted file mode 100644 index f2e82a56e..000000000 --- a/indexers/leaderboard-squid/src/types/transaction-payment/events.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transactionFeePaid = { - name: 'TransactionPayment.TransactionFeePaid', - /** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ - v0: new EventType( - 'TransactionPayment.TransactionFeePaid', - sts.struct({ - who: v0.AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/transaction-payment/storage.ts b/indexers/leaderboard-squid/src/types/transaction-payment/storage.ts deleted file mode 100644 index 1fe2ddae7..000000000 --- a/indexers/leaderboard-squid/src/types/transaction-payment/storage.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const nextFeeMultiplier = { - v0: new StorageType('TransactionPayment.NextFeeMultiplier', 'Default', [], v0.FixedU128) as NextFeeMultiplierV0, -} - -export interface NextFeeMultiplierV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.FixedU128 - get(block: Block): Promise<(v0.FixedU128 | undefined)> -} - -export const storageVersion = { - v0: new StorageType('TransactionPayment.StorageVersion', 'Default', [], v0.Releases) as StorageVersionV0, -} - -export interface StorageVersionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Releases - get(block: Block): Promise<(v0.Releases | undefined)> -} diff --git a/indexers/leaderboard-squid/src/types/v0.ts b/indexers/leaderboard-squid/src/types/v0.ts deleted file mode 100644 index a00fca6ac..000000000 --- a/indexers/leaderboard-squid/src/types/v0.ts +++ /dev/null @@ -1,3281 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const HistorySize = sts.bigint() - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export const RuntimeDbWeight: sts.Type = sts.struct(() => { - return { - read: sts.bigint(), - write: sts.bigint(), - } -}) - -export interface RuntimeDbWeight { - read: bigint - write: bigint -} - -export const BlockLength: sts.Type = sts.struct(() => { - return { - max: Type_85, - } -}) - -export const Type_85: sts.Type = sts.struct(() => { - return { - normal: sts.number(), - operational: sts.number(), - mandatory: sts.number(), - } -}) - -export interface Type_85 { - normal: number - operational: number - mandatory: number -} - -export interface BlockLength { - max: Type_85 -} - -export const BlockWeights: sts.Type = sts.struct(() => { - return { - baseBlock: Weight, - maxBlock: Weight, - perClass: Type_81, - } -}) - -export const Type_81: sts.Type = sts.struct(() => { - return { - normal: WeightsPerClass, - operational: WeightsPerClass, - mandatory: WeightsPerClass, - } -}) - -export const WeightsPerClass: sts.Type = sts.struct(() => { - return { - baseExtrinsic: Weight, - maxExtrinsic: sts.option(() => Weight), - maxTotal: sts.option(() => Weight), - reserved: sts.option(() => Weight), - } -}) - -export interface WeightsPerClass { - baseExtrinsic: Weight - maxExtrinsic?: (Weight | undefined) - maxTotal?: (Weight | undefined) - reserved?: (Weight | undefined) -} - -export interface Type_81 { - normal: WeightsPerClass - operational: WeightsPerClass - mandatory: WeightsPerClass -} - -export interface BlockWeights { - baseBlock: Weight - maxBlock: Weight - perClass: Type_81 -} - -export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint -} - -export type U256 = bigint - -export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } -}) - -export const U256 = sts.bigint() - -export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint -} - -export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } -}) - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint -} - -export interface KnownDeposit { - shares: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } -}) - -export type DomainEpoch = [DomainId, number] - -export type SharePrice = number - -export const SharePrice = sts.number() - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] -} - -export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } -}) - -export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export type DomainId = number - -export type Releases = Releases_V1Ancient | Releases_V2 - -export interface Releases_V1Ancient { - __kind: 'V1Ancient' -} - -export interface Releases_V2 { - __kind: 'V2' -} - -export const Releases: sts.Type = sts.closedEnum(() => { - return { - V1Ancient: sts.unit(), - V2: sts.unit(), - } -}) - -export type FixedU128 = bigint - -export const FixedU128 = sts.bigint() - -export interface CollectedFees { - storage: bigint - compute: bigint - tips: bigint -} - -export const CollectedFees: sts.Type = sts.struct(() => { - return { - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - } -}) - -export interface BlockTransactionByteFee { - current: bigint - next: bigint -} - -export const BlockTransactionByteFee: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.bigint(), - } -}) - -export interface Type_152 { - amount: bigint -} - -export const Type_152: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - } -}) - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface ReserveData { - id: Bytes - amount: bigint -} - -export const ReserveData: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - } -}) - -export interface BalanceLock { - id: Bytes - amount: bigint - reasons: Reasons -} - -export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc - -export interface Reasons_All { - __kind: 'All' -} - -export interface Reasons_Fee { - __kind: 'Fee' -} - -export interface Reasons_Misc { - __kind: 'Misc' -} - -export const BalanceLock: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - reasons: Reasons, - } -}) - -export const Reasons: sts.Type = sts.closedEnum(() => { - return { - All: sts.unit(), - Fee: sts.unit(), - Misc: sts.unit(), - } -}) - -export interface AccountData { - free: bigint - reserved: bigint - frozen: bigint - flags: ExtraFlags -} - -export type ExtraFlags = bigint - -export const AccountData: sts.Type = sts.struct(() => { - return { - free: sts.bigint(), - reserved: sts.bigint(), - frozen: sts.bigint(), - flags: ExtraFlags, - } -}) - -export const ExtraFlags = sts.bigint() - -export type Randomness = Bytes - -export const Randomness = sts.bytes() - -export interface PotEntropyValue { - targetSlot?: (Slot | undefined) - entropy: Bytes -} - -export const PotEntropyValue: sts.Type = sts.struct(() => { - return { - targetSlot: sts.option(() => Slot), - entropy: sts.bytes(), - } -}) - -export type Signature = Bytes - -export const Signature = sts.bytes() - -export interface Scalar { - inner: Bytes -} - -export type PieceOffset = number - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export const PieceOffset = sts.number() - -export interface VoteVerificationData { - solutionRange: bigint - voteSolutionRange: bigint - currentSlot: Slot - parentSlot: Slot -} - -export const VoteVerificationData: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - voteSolutionRange: sts.bigint(), - currentSlot: Slot, - parentSlot: Slot, - } -}) - -export type SegmentIndex = bigint - -export type SegmentCommitment = Bytes - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type Public = Bytes - -export interface SolutionRangeOverride { - solutionRange: bigint - votingSolutionRange: bigint -} - -export const SolutionRangeOverride: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - votingSolutionRange: sts.bigint(), - } -}) - -export interface SolutionRanges { - current: bigint - next?: (bigint | undefined) - votingCurrent: bigint - votingNext?: (bigint | undefined) -} - -export const SolutionRanges: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.option(() => sts.bigint()), - votingCurrent: sts.bigint(), - votingNext: sts.option(() => sts.bigint()), - } -}) - -export type NonZeroU32 = number - -export const NonZeroU32 = sts.number() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export interface CodeUpgradeAuthorization { - codeHash: H256 - checkVersion: boolean -} - -export const CodeUpgradeAuthorization: sts.Type = sts.struct(() => { - return { - codeHash: H256, - checkVersion: sts.boolean(), - } -}) - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export interface LastRuntimeUpgradeInfo { - specVersion: number - specName: string -} - -export const LastRuntimeUpgradeInfo: sts.Type = sts.struct(() => { - return { - specVersion: sts.number(), - specName: sts.string(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export interface Digest { - logs: DigestItem[] -} - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type H256 = Bytes - -export interface PerDispatchClass { - normal: Weight - operational: Weight - mandatory: Weight -} - -export const PerDispatchClass: sts.Type = sts.struct(() => { - return { - normal: Weight, - operational: Weight, - mandatory: Weight, - } -}) - -export type AccountId32 = Bytes - -export interface AccountInfo { - nonce: number - consumers: number - providers: number - sufficients: number - data: AccountData -} - -export const AccountInfo: sts.Type = sts.struct(() => { - return { - nonce: sts.number(), - consumers: sts.number(), - providers: sts.number(), - sufficients: sts.number(), - data: AccountData, - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type HistorySize = bigint - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export const DomainId = sts.number() - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Public = sts.bytes() - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export const AccountId32 = sts.bytes() - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) diff --git a/indexers/leaderboard-squid/src/types/v1.ts b/indexers/leaderboard-squid/src/types/v1.ts deleted file mode 100644 index 4891a0287..000000000 --- a/indexers/leaderboard-squid/src/types/v1.ts +++ /dev/null @@ -1,2706 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const PalletId = sts.bytes() - -export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 -} - -export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } -}) - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainId = sts.number() - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) -} - -export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint -} - -export type DomainEpoch = [DomainId, number] - -export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } -}) - -export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint -} - -export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author or rewards not enabled. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export type Public = Bytes - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -export type Slot = bigint - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export const Public = sts.bytes() - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const Slot = sts.bigint() - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const PotOutput = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type PotOutput = Bytes - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const AccountId32 = sts.bytes() diff --git a/indexers/leaderboard-squid/src/types/v3.ts b/indexers/leaderboard-squid/src/types/v3.ts deleted file mode 100644 index 73fc962ae..000000000 --- a/indexers/leaderboard-squid/src/types/v3.ts +++ /dev/null @@ -1,205 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface RewardPoint { - block: number - subsidy: bigint -} - -export type DomainId = number - -export const DomainId = sts.number() - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type DomainEpoch = [DomainId, number] - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export interface HoldIdentifier_Messenger { - __kind: 'Messenger' - value: MessengerHoldIdentifier -} - -export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel - -export interface MessengerHoldIdentifier_Channel { - __kind: 'Channel' - value: [ChainId, bigint] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - Messenger: MessengerHoldIdentifier, - } -}) - -export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Channel: sts.tuple(() => [ChainId, sts.bigint()]), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } -}) diff --git a/indexers/leaderboard-squid/src/types/v5.ts b/indexers/leaderboard-squid/src/types/v5.ts deleted file mode 100644 index f626e91f8..000000000 --- a/indexers/leaderboard-squid/src/types/v5.ts +++ /dev/null @@ -1,2724 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface DomainRuntimeUpgradeEntry { - atHash: H256 - referenceCount: number -} - -export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { - return { - atHash: H256, - referenceCount: sts.number(), - } -}) - -export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone - -export interface PermissionedActionAllowedBy_Accounts { - __kind: 'Accounts' - value: AccountId32[] -} - -export interface PermissionedActionAllowedBy_Anyone { - __kind: 'Anyone' -} - -export type AccountId32 = Bytes - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_AutoId { - __kind: 'AutoId' -} - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm - -export interface RuntimeType_AutoId { - __kind: 'AutoId' -} - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author or rewards not enabled. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export type Public = Bytes - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_TotalIssuanceForced | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * The `TotalIssuance` was forcefully changed. - */ -export interface BalancesEvent_TotalIssuanceForced { - __kind: 'TotalIssuanceForced' - old: bigint - new: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export const Public = sts.bytes() - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - TotalIssuanceForced: sts.enumStruct({ - old: sts.bigint(), - new: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { - return { - Accounts: sts.array(() => AccountId32), - Anyone: sts.unit(), - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export const Percent = sts.number() - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export type Percent = number - -export const DomainId = sts.number() - -export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } -}) - -export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } -}) - -export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } -}) - -export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface SuccessfulBundlesProof { - trieNodes: Bytes[] -} - -export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof -} - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export type PotOutput = Bytes - -export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } -}) - -export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, - } -}) - -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] -} - -export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] -} - -export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] -} - -export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), - } -}) - -export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] -} - -export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockDigestProof { - trieNodes: Bytes[] -} - -export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) -} - -export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface TimestampStorageProof { - trieNodes: Bytes[] -} - -export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof -} - -export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockRandomnessProof { - trieNodes: Bytes[] -} - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof -} - -export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } -}) - -export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - } -}) - -export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic - -export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof -} - -export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof -} - -export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof -} - -export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - storageProof: StorageProof -} - -export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle - -export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof -} - -export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } -}) - -export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof -} - -export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Proof -} - -export interface Proof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export type EncodableOpaqueLeaf = Bytes - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Proof, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export const EncodableOpaqueLeaf = sts.bytes() - -export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) - maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) - proof: FraudProofVariant -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export const PotOutput = sts.bytes() - -export const AdjustmentDirection: sts.Type = sts.closedEnum(() => { - return { - Decrease: sts.unit(), - Increase: sts.unit(), - } -}) - -export type AdjustmentDirection = AdjustmentDirection_Decrease | AdjustmentDirection_Increase - -export interface AdjustmentDirection_Decrease { - __kind: 'Decrease' -} - -export interface AdjustmentDirection_Increase { - __kind: 'Increase' -} - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - InvalidBundle: sts.number(), - } -}) - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } -}) diff --git a/indexers/leaderboard-squid/src/utils/cache.ts b/indexers/leaderboard-squid/src/utils/cache.ts index 530c7ba94..08aabd039 100644 --- a/indexers/leaderboard-squid/src/utils/cache.ts +++ b/indexers/leaderboard-squid/src/utils/cache.ts @@ -1,5 +1,5 @@ -import type { Store } from "@subsquid/typeorm-store"; -import { Entity } from "@subsquid/typeorm-store/src/store"; +import type { Store } from '@subsquid/typeorm-store' +import { Entity } from '@subsquid/typeorm-store/src/store' import { AccountExtrinsicFailedTotalCount, AccountExtrinsicSuccessTotalCount, @@ -25,100 +25,80 @@ import { OperatorTotalRewardsCollected, OperatorTotalTaxCollected, OperatorWithdrawalsTotalCount, -} from "../model"; -import type { Ctx } from "../processor"; -import { log } from "./index"; +} from '../model' +import type { Ctx } from '../processor' +import { log } from './index' export type CacheEntries = { - farmerVoteTotalCount: Map; - farmerVoteTotalValue: Map; - farmerBlockTotalCount: Map; - farmerBlockTotalValue: Map; - farmerVoteAndBlockTotalCount: Map; - farmerVoteAndBlockTotalValue: Map; + farmerVoteTotalCount: Map + farmerVoteTotalValue: Map + farmerBlockTotalCount: Map + farmerBlockTotalValue: Map + farmerVoteAndBlockTotalCount: Map + farmerVoteAndBlockTotalValue: Map - operatorTotalRewardsCollected: Map; - operatorTotalTaxCollected: Map; - operatorBundleTotalCount: Map; - operatorDepositsTotalCount: Map; - operatorDepositsTotalValue: Map; - operatorWithdrawalsTotalCount: Map; + operatorTotalRewardsCollected: Map + operatorTotalTaxCollected: Map + operatorBundleTotalCount: Map + operatorDepositsTotalCount: Map + operatorDepositsTotalValue: Map + operatorWithdrawalsTotalCount: Map - nominatorDepositsTotalCount: Map; - nominatorDepositsTotalValue: Map; - nominatorWithdrawalsTotalCount: Map; + nominatorDepositsTotalCount: Map + nominatorDepositsTotalValue: Map + nominatorWithdrawalsTotalCount: Map - accountTransferSenderTotalCount: Map; - accountTransferSenderTotalValue: Map; - accountTransferReceiverTotalCount: Map< - string, - AccountTransferReceiverTotalCount - >; - accountTransferReceiverTotalValue: Map< - string, - AccountTransferReceiverTotalValue - >; - accountRemarkCount: Map; + accountTransferSenderTotalCount: Map + accountTransferSenderTotalValue: Map + accountTransferReceiverTotalCount: Map + accountTransferReceiverTotalValue: Map + accountRemarkCount: Map - accountExtrinsicTotalCount: Map; - accountExtrinsicSuccessTotalCount: Map< - string, - AccountExtrinsicSuccessTotalCount - >; - accountExtrinsicFailedTotalCount: Map< - string, - AccountExtrinsicFailedTotalCount - >; - accountTransactionFeePaidTotalValue: Map< - string, - AccountTransactionFeePaidTotalValue - >; -}; + accountExtrinsicTotalCount: Map + accountExtrinsicSuccessTotalCount: Map + accountExtrinsicFailedTotalCount: Map + accountTransactionFeePaidTotalValue: Map +} -export type Cache = CacheEntries & { isModified: boolean }; +export type Cache = CacheEntries & { isModified: boolean } const farmersKeys = [ - "farmerVoteTotalCount", - "farmerVoteTotalValue", - "farmerBlockTotalCount", - "farmerBlockTotalValue", - "farmerVoteAndBlockTotalCount", - "farmerVoteAndBlockTotalValue", -]; + 'farmerVoteTotalCount', + 'farmerVoteTotalValue', + 'farmerBlockTotalCount', + 'farmerBlockTotalValue', + 'farmerVoteAndBlockTotalCount', + 'farmerVoteAndBlockTotalValue', +] const operatorsKeys = [ - "operatorTotalRewardsCollected", - "operatorTotalTaxCollected", - "operatorBundleTotalCount", - "operatorDepositsTotalCount", - "operatorDepositsTotalValue", - "operatorWithdrawalsTotalCount", -]; + 'operatorTotalRewardsCollected', + 'operatorTotalTaxCollected', + 'operatorBundleTotalCount', + 'operatorDepositsTotalCount', + 'operatorDepositsTotalValue', + 'operatorWithdrawalsTotalCount', +] const nominatorsKeys = [ - "nominatorDepositsTotalCount", - "nominatorDepositsTotalValue", - "nominatorWithdrawalsTotalCount", -]; + 'nominatorDepositsTotalCount', + 'nominatorDepositsTotalValue', + 'nominatorWithdrawalsTotalCount', +] const accountsKeys = [ - "accountTransferSenderTotalCount", - "accountTransferSenderTotalValue", - "accountTransferReceiverTotalCount", - "accountTransferReceiverTotalValue", - "accountRemarkCount", - "accountExtrinsicTotalCount", - "accountExtrinsicSuccessTotalCount", - "accountExtrinsicFailedTotalCount", - "accountTransactionFeePaidTotalValue", -]; + 'accountTransferSenderTotalCount', + 'accountTransferSenderTotalValue', + 'accountTransferReceiverTotalCount', + 'accountTransferReceiverTotalValue', + 'accountRemarkCount', + 'accountExtrinsicTotalCount', + 'accountExtrinsicSuccessTotalCount', + 'accountExtrinsicFailedTotalCount', + 'accountTransactionFeePaidTotalValue', +] -const keys = [ - ...farmersKeys, - ...operatorsKeys, - ...nominatorsKeys, - ...accountsKeys, -]; +const keys = [...farmersKeys, ...operatorsKeys, ...nominatorsKeys, ...accountsKeys] export const initCache: Cache = { isModified: false, @@ -126,7 +106,7 @@ export const initCache: Cache = { ...operatorsKeys.reduce((acc, key) => ({ ...acc, [key]: new Map() }), {}), ...nominatorsKeys.reduce((acc, key) => ({ ...acc, [key]: new Map() }), {}), ...accountsKeys.reduce((acc, key) => ({ ...acc, [key]: new Map() }), {}), -} as Cache; +} as Cache export const load = async (ctx: Ctx): Promise => { const [ @@ -143,7 +123,7 @@ export const load = async (ctx: Ctx): Promise => { ctx.store.find(FarmerBlockTotalValue), ctx.store.find(FarmerVoteAndBlockTotalCount), ctx.store.find(FarmerVoteAndBlockTotalValue), - ]); + ]) const [ operatorTotalRewardsCollected, @@ -159,17 +139,14 @@ export const load = async (ctx: Ctx): Promise => { ctx.store.find(OperatorDepositsTotalCount), ctx.store.find(OperatorDepositsTotalValue), ctx.store.find(OperatorWithdrawalsTotalCount), - ]); + ]) - const [ - nominatorDepositsTotalCount, - nominatorDepositsTotalValue, - nominatorWithdrawalsTotalCount, - ] = await Promise.all([ - ctx.store.find(NominatorDepositsTotalCount), - ctx.store.find(NominatorDepositsTotalValue), - ctx.store.find(NominatorWithdrawalsTotalCount), - ]); + const [nominatorDepositsTotalCount, nominatorDepositsTotalValue, nominatorWithdrawalsTotalCount] = + await Promise.all([ + ctx.store.find(NominatorDepositsTotalCount), + ctx.store.find(NominatorDepositsTotalValue), + ctx.store.find(NominatorWithdrawalsTotalCount), + ]) const [ accountTransferSenderTotalCount, @@ -191,10 +168,10 @@ export const load = async (ctx: Ctx): Promise => { ctx.store.find(AccountExtrinsicSuccessTotalCount), ctx.store.find(AccountExtrinsicFailedTotalCount), ctx.store.find(AccountTransactionFeePaidTotalValue), - ]); + ]) log( - "\x1b[32mLoading from database:\x1b[0m", + '\x1b[32mLoading from database:\x1b[0m', ( farmerVoteTotalCount.length + farmerVoteTotalValue.length + @@ -220,8 +197,8 @@ export const load = async (ctx: Ctx): Promise => { accountExtrinsicSuccessTotalCount.length + accountExtrinsicFailedTotalCount.length + accountTransactionFeePaidTotalValue.length - ).toString() + " entries" - ); + ).toString() + ' entries', + ) return { ...initCache, @@ -229,112 +206,73 @@ export const load = async (ctx: Ctx): Promise => { farmerVoteTotalValue: new Map(farmerVoteTotalValue.map((a) => [a.id, a])), farmerBlockTotalCount: new Map(farmerBlockTotalCount.map((o) => [o.id, o])), farmerBlockTotalValue: new Map(farmerBlockTotalValue.map((n) => [n.id, n])), - farmerVoteAndBlockTotalCount: new Map( - farmerVoteAndBlockTotalCount.map((o) => [o.id, o]) - ), - farmerVoteAndBlockTotalValue: new Map( - farmerVoteAndBlockTotalValue.map((n) => [n.id, n]) - ), - operatorTotalRewardsCollected: new Map( - operatorTotalRewardsCollected.map((o) => [o.id, o]) - ), - operatorTotalTaxCollected: new Map( - operatorTotalTaxCollected.map((n) => [n.id, n]) - ), - operatorBundleTotalCount: new Map( - operatorBundleTotalCount.map((n) => [n.id, n]) - ), - operatorDepositsTotalCount: new Map( - operatorDepositsTotalCount.map((n) => [n.id, n]) - ), - operatorDepositsTotalValue: new Map( - operatorDepositsTotalValue.map((n) => [n.id, n]) - ), - operatorWithdrawalsTotalCount: new Map( - operatorWithdrawalsTotalCount.map((n) => [n.id, n]) - ), - nominatorDepositsTotalCount: new Map( - nominatorDepositsTotalCount.map((n) => [n.id, n]) - ), - nominatorDepositsTotalValue: new Map( - nominatorDepositsTotalValue.map((n) => [n.id, n]) - ), - nominatorWithdrawalsTotalCount: new Map( - nominatorWithdrawalsTotalCount.map((n) => [n.id, n]) - ), - accountTransferSenderTotalCount: new Map( - accountTransferSenderTotalCount.map((n) => [n.id, n]) - ), - accountTransferSenderTotalValue: new Map( - accountTransferSenderTotalValue.map((n) => [n.id, n]) - ), + farmerVoteAndBlockTotalCount: new Map(farmerVoteAndBlockTotalCount.map((o) => [o.id, o])), + farmerVoteAndBlockTotalValue: new Map(farmerVoteAndBlockTotalValue.map((n) => [n.id, n])), + operatorTotalRewardsCollected: new Map(operatorTotalRewardsCollected.map((o) => [o.id, o])), + operatorTotalTaxCollected: new Map(operatorTotalTaxCollected.map((n) => [n.id, n])), + operatorBundleTotalCount: new Map(operatorBundleTotalCount.map((n) => [n.id, n])), + operatorDepositsTotalCount: new Map(operatorDepositsTotalCount.map((n) => [n.id, n])), + operatorDepositsTotalValue: new Map(operatorDepositsTotalValue.map((n) => [n.id, n])), + operatorWithdrawalsTotalCount: new Map(operatorWithdrawalsTotalCount.map((n) => [n.id, n])), + nominatorDepositsTotalCount: new Map(nominatorDepositsTotalCount.map((n) => [n.id, n])), + nominatorDepositsTotalValue: new Map(nominatorDepositsTotalValue.map((n) => [n.id, n])), + nominatorWithdrawalsTotalCount: new Map(nominatorWithdrawalsTotalCount.map((n) => [n.id, n])), + accountTransferSenderTotalCount: new Map(accountTransferSenderTotalCount.map((n) => [n.id, n])), + accountTransferSenderTotalValue: new Map(accountTransferSenderTotalValue.map((n) => [n.id, n])), accountTransferReceiverTotalCount: new Map( - accountTransferReceiverTotalCount.map((n) => [n.id, n]) + accountTransferReceiverTotalCount.map((n) => [n.id, n]), ), accountTransferReceiverTotalValue: new Map( - accountTransferReceiverTotalValue.map((n) => [n.id, n]) + accountTransferReceiverTotalValue.map((n) => [n.id, n]), ), accountRemarkCount: new Map(accountRemarkCount.map((n) => [n.id, n])), - accountExtrinsicTotalCount: new Map( - accountExtrinsicTotalCount.map((n) => [n.id, n]) - ), + accountExtrinsicTotalCount: new Map(accountExtrinsicTotalCount.map((n) => [n.id, n])), accountExtrinsicSuccessTotalCount: new Map( - accountExtrinsicSuccessTotalCount.map((n) => [n.id, n]) + accountExtrinsicSuccessTotalCount.map((n) => [n.id, n]), ), accountExtrinsicFailedTotalCount: new Map( - accountExtrinsicFailedTotalCount.map((n) => [n.id, n]) + accountExtrinsicFailedTotalCount.map((n) => [n.id, n]), ), accountTransactionFeePaidTotalValue: new Map( - accountTransactionFeePaidTotalValue.map((n) => [n.id, n]) + accountTransactionFeePaidTotalValue.map((n) => [n.id, n]), ), - }; -}; + } +} -const saveEntry = async ( - ctx: Ctx, - cache: Cache, - name: keyof Cache -) => { +const saveEntry = async (ctx: Ctx, cache: Cache, name: keyof Cache) => { try { - const entity = cache[name] as unknown as Map; - if (entity.size === 0) return; + const entity = cache[name] as unknown as Map + if (entity.size === 0) return - await ctx.store.save(Array.from(entity.values())); + await ctx.store.save(Array.from(entity.values())) } catch (e) { - console.error(`Failed to save ${name} with error:`, e); + console.error(`Failed to save ${name} with error:`, e) } -}; +} -const logEntry = (name: string, entry: Map) => - entry.size > 0 ? entry.size : 0; +const logEntry = (name: string, entry: Map) => (entry.size > 0 ? entry.size : 0) const logEntries = (cache: Cache, keys: string[]) => { return keys.reduce( - (acc, key) => - logEntry(key, cache[key as keyof CacheEntries] as Map) + - acc, - 0 - ); -}; + (acc, key) => logEntry(key, cache[key as keyof CacheEntries] as Map) + acc, + 0, + ) +} export const save = async (ctx: Ctx, cache: Cache) => { // If the cache is not modified, skip saving - if (!cache.isModified) return; + if (!cache.isModified) return - log( - "\x1b[34mSaving in database:\x1b[0m", - logEntries(cache, keys).toString(), - "entries\n" - ); + log('\x1b[34mSaving in database:\x1b[0m', logEntries(cache, keys).toString(), 'entries\n') await Promise.all( Object.keys(cache).map((k) => - k !== "isModified" ? saveEntry(ctx, cache, k as keyof Cache) : null - ) - ); + k !== 'isModified' ? saveEntry(ctx, cache, k as keyof Cache) : null, + ), + ) // Clear the cache for entries not needed for reference keys.forEach((key) => { - cache[key as keyof CacheEntries].clear(); - }); -}; + cache[key as keyof CacheEntries].clear() + }) +} diff --git a/indexers/leaderboard-squid/src/utils/index.ts b/indexers/leaderboard-squid/src/utils/index.ts index aacbe3e6d..c42db231b 100644 --- a/indexers/leaderboard-squid/src/utils/index.ts +++ b/indexers/leaderboard-squid/src/utils/index.ts @@ -1,48 +1,44 @@ -import { codec } from "@subsquid/ss58"; -import type { Store } from "@subsquid/typeorm-store"; -import { decodeHex } from "@subsquid/util-internal-hex"; -import type { CtxBlock, ProcessorContext } from "../processor"; +import { codec } from '@subsquid/ss58' +import type { Store } from '@subsquid/typeorm-store' +import { decodeHex } from '@subsquid/util-internal-hex' +import type { CtxBlock, ProcessorContext } from '../processor' -export const hexToAccount = (hex: string): string => - codec(2254).encode(decodeHex(hex)); +export const hexToAccount = (hex: string): string => codec(2254).encode(decodeHex(hex)) export const getCallSigner = ( - call: ProcessorContext["blocks"][0]["extrinsics"][0]["call"] -): string => hexToAccount((call as any).origin.value.value); + call: ProcessorContext['blocks'][0]['extrinsics'][0]['call'], +): string => hexToAccount((call as any).origin.value.value) export const getExtrinsicSigner = ( - extrinsic: ProcessorContext["blocks"][0]["extrinsics"][0] -): string => hexToAccount((extrinsic as any).signature?.address.value); + extrinsic: ProcessorContext['blocks'][0]['extrinsics'][0], +): string => hexToAccount((extrinsic as any).signature?.address.value) export const appendOrArray = (arr: T[] | undefined, item: T): T[] => - !arr ? [item] : [...arr, item]; + !arr ? [item] : [...arr, item] -export const getBlockNumber = (block: CtxBlock): number => block.header.height; +export const getBlockNumber = (block: CtxBlock): number => block.header.height -export const getTimestamp = (block: CtxBlock): Date => - new Date(block.header.timestamp || 0); +export const getTimestamp = (block: CtxBlock): Date => new Date(block.header.timestamp || 0) -export const domainUID = (domainId: number): string => `${domainId}`; +export const domainUID = (domainId: number): string => `${domainId}` -export const operatorUID = (operatorId: number): string => `${operatorId}`; +export const operatorUID = (operatorId: number): string => `${operatorId}` export const nominatorUID = (operatorId: number, account: string): string => - `${operatorId}-${account}`; + `${operatorId}-${account}` export const log = (msg: string, ...extra: string[]): void => { - const _msg = Array.isArray(extra) ? msg + " " + extra.join(" ") : msg; - console.log( - process.env.ENABLE_COLOR_LOG ? _msg : _msg.replace(/\x1b\[\d+m/g, "") - ); -}; + const _msg = Array.isArray(extra) ? msg + ' ' + extra.join(' ') : msg + console.log(process.env.ENABLE_COLOR_LOG ? _msg : _msg.replace(/\x1b\[\d+m/g, '')) +} export const logBlock = (blocks: CtxBlock[]): void => { - const from = getBlockNumber(blocks[0]); - const to = getBlockNumber(blocks[blocks.length - 1]); + const from = getBlockNumber(blocks[0]) + const to = getBlockNumber(blocks[blocks.length - 1]) return log( - "\x1b[33mProcessing:\x1b[0m", - blocks.length + " blocks", - "From " + from, - "to " + to + " (" + (to - from) + " blocks)" - ); -}; + '\x1b[33mProcessing:\x1b[0m', + blocks.length + ' blocks', + 'From ' + from, + 'to ' + to + ' (' + (to - from) + ' blocks)', + ) +} diff --git a/indexers/leaderboard-squid/src/utils/sort.ts b/indexers/leaderboard-squid/src/utils/sort.ts index 0b68c6acd..a01466124 100644 --- a/indexers/leaderboard-squid/src/utils/sort.ts +++ b/indexers/leaderboard-squid/src/utils/sort.ts @@ -23,267 +23,250 @@ import { OperatorTotalRewardsCollected, OperatorTotalTaxCollected, OperatorWithdrawalsTotalCount, -} from "../model"; -import { Cache } from "./cache"; +} from '../model' +import { Cache } from './cache' export const sort = (cache: Cache): Cache => { // AccountTransferSenderTotalCount - const sortedAccountTransferSenderTotalCount: AccountTransferSenderTotalCount[] = - Array.from(cache.accountTransferSenderTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedAccountTransferSenderTotalCount: AccountTransferSenderTotalCount[] = Array.from( + cache.accountTransferSenderTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedAccountTransferSenderTotalCount.map((n, key) => { - n.rank = key + 1; - cache.accountTransferSenderTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.accountTransferSenderTotalCount.set(n.id, n) + }) // AccountTransferSenderTotalValue - const sortedAccountTransferSenderTotalValue: AccountTransferSenderTotalValue[] = - Array.from(cache.accountTransferSenderTotalValue.values()).sort((a, b) => - a.value < b.value ? -1 : a.value > b.value ? 1 : 0 - ); + const sortedAccountTransferSenderTotalValue: AccountTransferSenderTotalValue[] = Array.from( + cache.accountTransferSenderTotalValue.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedAccountTransferSenderTotalValue.map((n, key) => { - n.rank = key + 1; - cache.accountTransferSenderTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.accountTransferSenderTotalValue.set(n.id, n) + }) // AccountTransferReceiverTotalCount - const sortedAccountTransferReceiverTotalCount: AccountTransferReceiverTotalCount[] = - Array.from(cache.accountTransferReceiverTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedAccountTransferReceiverTotalCount: AccountTransferReceiverTotalCount[] = Array.from( + cache.accountTransferReceiverTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedAccountTransferReceiverTotalCount.map((n, key) => { - n.rank = key + 1; - cache.accountTransferReceiverTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.accountTransferReceiverTotalCount.set(n.id, n) + }) // AccountTransferReceiverTotalValue - const sortedAccountTransferReceiverTotalValue: AccountTransferReceiverTotalValue[] = - Array.from(cache.accountTransferReceiverTotalValue.values()).sort((a, b) => - a.value < b.value ? -1 : a.value > b.value ? 1 : 0 - ); + const sortedAccountTransferReceiverTotalValue: AccountTransferReceiverTotalValue[] = Array.from( + cache.accountTransferReceiverTotalValue.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedAccountTransferReceiverTotalValue.map((n, key) => { - n.rank = key + 1; - cache.accountTransferReceiverTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.accountTransferReceiverTotalValue.set(n.id, n) + }) // AccountRemarkCount const sortedAccountRemarkCount: AccountRemarkCount[] = Array.from( - cache.accountRemarkCount.values() - ).sort((a, b) => b.value - a.value); + cache.accountRemarkCount.values(), + ).sort((a, b) => b.value - a.value) sortedAccountRemarkCount.map((n, key) => { - n.rank = key + 1; - cache.accountRemarkCount.set(n.id, n); - }); + n.rank = key + 1 + cache.accountRemarkCount.set(n.id, n) + }) // AccountExtrinsicTotalCount - const sortedAccountExtrinsicTotalCount: AccountExtrinsicTotalCount[] = - Array.from(cache.accountExtrinsicTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedAccountExtrinsicTotalCount: AccountExtrinsicTotalCount[] = Array.from( + cache.accountExtrinsicTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedAccountExtrinsicTotalCount.map((n, key) => { - n.rank = key + 1; - cache.accountExtrinsicTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.accountExtrinsicTotalCount.set(n.id, n) + }) // AccountExtrinsicSuccessTotalCount - const sortedAccountExtrinsicSuccessTotalCount: AccountExtrinsicSuccessTotalCount[] = - Array.from(cache.accountExtrinsicSuccessTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedAccountExtrinsicSuccessTotalCount: AccountExtrinsicSuccessTotalCount[] = Array.from( + cache.accountExtrinsicSuccessTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedAccountExtrinsicSuccessTotalCount.map((n, key) => { - n.rank = key + 1; - cache.accountExtrinsicSuccessTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.accountExtrinsicSuccessTotalCount.set(n.id, n) + }) // AccountExtrinsicFailedTotalCount - const sortedAccountExtrinsicFailedTotalCount: AccountExtrinsicFailedTotalCount[] = - Array.from(cache.accountExtrinsicFailedTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedAccountExtrinsicFailedTotalCount: AccountExtrinsicFailedTotalCount[] = Array.from( + cache.accountExtrinsicFailedTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedAccountExtrinsicFailedTotalCount.map((n, key) => { - n.rank = key + 1; - cache.accountExtrinsicFailedTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.accountExtrinsicFailedTotalCount.set(n.id, n) + }) // AccountTransactionFeePaidTotalValue const sortedAccountTransactionFeePaidTotalValue: AccountTransactionFeePaidTotalValue[] = - Array.from(cache.accountTransactionFeePaidTotalValue.values()).sort( - (a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0) - ); + Array.from(cache.accountTransactionFeePaidTotalValue.values()).sort((a, b) => + a.value < b.value ? -1 : a.value > b.value ? 1 : 0, + ) sortedAccountTransactionFeePaidTotalValue.map((n, key) => { - n.rank = key + 1; - cache.accountTransactionFeePaidTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.accountTransactionFeePaidTotalValue.set(n.id, n) + }) // FarmerVoteTotalCount const sortedFarmerVoteTotalCount: FarmerVoteTotalCount[] = Array.from( - cache.farmerVoteTotalCount.values() - ).sort((a, b) => b.value - a.value); + cache.farmerVoteTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedFarmerVoteTotalCount.map((n, key) => { - n.rank = key + 1; - cache.farmerVoteTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.farmerVoteTotalCount.set(n.id, n) + }) // FarmerVoteTotalValue const sortedFarmerVoteTotalValue: FarmerVoteTotalValue[] = Array.from( - cache.farmerVoteTotalValue.values() - ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)); + cache.farmerVoteTotalValue.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedFarmerVoteTotalValue.map((n, key) => { - n.rank = key + 1; - cache.farmerVoteTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.farmerVoteTotalValue.set(n.id, n) + }) // FarmerBlockTotalCount const sortedFarmerBlockTotalCount: FarmerBlockTotalCount[] = Array.from( - cache.farmerBlockTotalCount.values() - ).sort((a, b) => b.value - a.value); + cache.farmerBlockTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedFarmerBlockTotalCount.map((n, key) => { - n.rank = key + 1; - cache.farmerBlockTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.farmerBlockTotalCount.set(n.id, n) + }) // FarmerBlockTotalValue const sortedFarmerBlockTotalValue: FarmerBlockTotalValue[] = Array.from( - cache.farmerBlockTotalValue.values() - ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)); + cache.farmerBlockTotalValue.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedFarmerBlockTotalValue.map((n, key) => { - n.rank = key + 1; - cache.farmerBlockTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.farmerBlockTotalValue.set(n.id, n) + }) // FarmerVoteAndBlockTotalCount - const sortedFarmerVoteAndBlockTotalCount: FarmerVoteAndBlockTotalCount[] = - Array.from(cache.farmerVoteAndBlockTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedFarmerVoteAndBlockTotalCount: FarmerVoteAndBlockTotalCount[] = Array.from( + cache.farmerVoteAndBlockTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedFarmerVoteAndBlockTotalCount.map((n, key) => { - n.rank = key + 1; - cache.farmerVoteAndBlockTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.farmerVoteAndBlockTotalCount.set(n.id, n) + }) // FarmerVoteAndBlockTotalValue - const sortedFarmerVoteAndBlockTotalValue: FarmerVoteAndBlockTotalValue[] = - Array.from(cache.farmerVoteAndBlockTotalValue.values()).sort((a, b) => - a.value < b.value ? -1 : a.value > b.value ? 1 : 0 - ); + const sortedFarmerVoteAndBlockTotalValue: FarmerVoteAndBlockTotalValue[] = Array.from( + cache.farmerVoteAndBlockTotalValue.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedFarmerVoteAndBlockTotalValue.map((n, key) => { - n.rank = key + 1; - cache.farmerVoteAndBlockTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.farmerVoteAndBlockTotalValue.set(n.id, n) + }) // OperatorTotalRewardsCollected - const sortedOperatorTotalRewardsCollected: OperatorTotalRewardsCollected[] = - Array.from(cache.operatorTotalRewardsCollected.values()).sort((a, b) => - a.value < b.value ? -1 : a.value > b.value ? 1 : 0 - ); + const sortedOperatorTotalRewardsCollected: OperatorTotalRewardsCollected[] = Array.from( + cache.operatorTotalRewardsCollected.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedOperatorTotalRewardsCollected.map((n, key) => { - n.rank = key + 1; - cache.operatorTotalRewardsCollected.set(n.id, n); - }); + n.rank = key + 1 + cache.operatorTotalRewardsCollected.set(n.id, n) + }) // OperatorTotalTaxCollected - const sortedOperatorTotalTaxCollected: OperatorTotalTaxCollected[] = - Array.from(cache.operatorTotalTaxCollected.values()).sort((a, b) => - a.value < b.value ? -1 : a.value > b.value ? 1 : 0 - ); + const sortedOperatorTotalTaxCollected: OperatorTotalTaxCollected[] = Array.from( + cache.operatorTotalTaxCollected.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedOperatorTotalTaxCollected.map((n, key) => { - n.rank = key + 1; - cache.operatorTotalTaxCollected.set(n.id, n); - }); + n.rank = key + 1 + cache.operatorTotalTaxCollected.set(n.id, n) + }) // OperatorBundleTotalCount const sortedOperatorBundleTotalCount: OperatorBundleTotalCount[] = Array.from( - cache.operatorBundleTotalCount.values() - ).sort((a, b) => b.value - a.value); + cache.operatorBundleTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedOperatorBundleTotalCount.map((n, key) => { - n.rank = key + 1; - cache.operatorBundleTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.operatorBundleTotalCount.set(n.id, n) + }) // OperatorDepositsTotalCount - const sortedOperatorDepositsTotalCount: OperatorDepositsTotalCount[] = - Array.from(cache.operatorDepositsTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedOperatorDepositsTotalCount: OperatorDepositsTotalCount[] = Array.from( + cache.operatorDepositsTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedOperatorDepositsTotalCount.map((n, key) => { - n.rank = key + 1; - cache.operatorDepositsTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.operatorDepositsTotalCount.set(n.id, n) + }) // OperatorDepositsTotalValue - const sortedOperatorDepositsTotalValue: OperatorDepositsTotalValue[] = - Array.from(cache.operatorDepositsTotalValue.values()).sort((a, b) => - a.value < b.value ? -1 : a.value > b.value ? 1 : 0 - ); + const sortedOperatorDepositsTotalValue: OperatorDepositsTotalValue[] = Array.from( + cache.operatorDepositsTotalValue.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedOperatorDepositsTotalValue.map((n, key) => { - n.rank = key + 1; - cache.operatorDepositsTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.operatorDepositsTotalValue.set(n.id, n) + }) // OperatorWithdrawalsTotalCount - const sortedOperatorWithdrawalsTotalCount: OperatorWithdrawalsTotalCount[] = - Array.from(cache.operatorWithdrawalsTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedOperatorWithdrawalsTotalCount: OperatorWithdrawalsTotalCount[] = Array.from( + cache.operatorWithdrawalsTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedOperatorWithdrawalsTotalCount.map((n, key) => { - n.rank = key + 1; - cache.operatorWithdrawalsTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.operatorWithdrawalsTotalCount.set(n.id, n) + }) // NominatorDepositsTotalCount - const sortedNominatorDepositsTotalCount: NominatorDepositsTotalCount[] = - Array.from(cache.nominatorDepositsTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedNominatorDepositsTotalCount: NominatorDepositsTotalCount[] = Array.from( + cache.nominatorDepositsTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedNominatorDepositsTotalCount.map((n, key) => { - n.rank = key + 1; - cache.nominatorDepositsTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.nominatorDepositsTotalCount.set(n.id, n) + }) // NominatorDepositsTotalValue - const sortedNominatorDepositsTotalValue: NominatorDepositsTotalValue[] = - Array.from(cache.nominatorDepositsTotalValue.values()).sort((a, b) => - a.value < b.value ? -1 : a.value > b.value ? 1 : 0 - ); + const sortedNominatorDepositsTotalValue: NominatorDepositsTotalValue[] = Array.from( + cache.nominatorDepositsTotalValue.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedNominatorDepositsTotalValue.map((n, key) => { - n.rank = key + 1; - cache.nominatorDepositsTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.nominatorDepositsTotalValue.set(n.id, n) + }) // NominatorWithdrawalsTotalCount - const sortedNominatorWithdrawalsTotalCount: NominatorWithdrawalsTotalCount[] = - Array.from(cache.nominatorWithdrawalsTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedNominatorWithdrawalsTotalCount: NominatorWithdrawalsTotalCount[] = Array.from( + cache.nominatorWithdrawalsTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedNominatorWithdrawalsTotalCount.map((n, key) => { - n.rank = key + 1; - cache.nominatorWithdrawalsTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.nominatorWithdrawalsTotalCount.set(n.id, n) + }) - return cache; -}; + return cache +} diff --git a/indexers/rewards-squid/.dockerignore b/indexers/rewards-squid/.dockerignore deleted file mode 100644 index 27c983bc0..000000000 --- a/indexers/rewards-squid/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -/.git -/node_modules -/lib -/*Versions.jsonl diff --git a/indexers/rewards-squid/.env.local b/indexers/rewards-squid/.env.local deleted file mode 100644 index 4e8d11d22..000000000 --- a/indexers/rewards-squid/.env.local +++ /dev/null @@ -1,4 +0,0 @@ -DB_NAME=rewards-squid -RPC_ENDPOINT=wss://rpc-0.gemini-3h.subspace.network/ws -GQL_PORT=4450 -DB_PORT=5433 \ No newline at end of file diff --git a/indexers/rewards-squid/.env.sample b/indexers/rewards-squid/.env.sample deleted file mode 100644 index 044ef9c91..000000000 --- a/indexers/rewards-squid/.env.sample +++ /dev/null @@ -1,4 +0,0 @@ -DB_NAME=rewards-squid -RPC_ENDPOINT=wss://rpc-0.gemini-3h.subspace.network/ws -GQL_PORT=4450 -DB_PORT=5433 diff --git a/indexers/rewards-squid/.github/ISSUE_TEMPLATE/bug_report.md b/indexers/rewards-squid/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index bf3db9c69..000000000 --- a/indexers/rewards-squid/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,45 +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. - -**Environment (please complete the following information):** - - specify the version of the core packages (@subsquid/cli, @subsquid/substrate-processor, ...) - - node.js version - - npm version - - OS version - - Reproducible example or a repo link - -**Applicable to decoding issues:** - - chain name - - typesBundle (if it's not built-in) -optional: - - block - - extrinsic - - call - - event - - spec version - - endpoint - -**Additional context** -Add any other context about the problem here. diff --git a/indexers/rewards-squid/.npmrc b/indexers/rewards-squid/.npmrc deleted file mode 100644 index 4fd021952..000000000 --- a/indexers/rewards-squid/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true \ No newline at end of file diff --git a/indexers/rewards-squid/Dockerfile b/indexers/rewards-squid/Dockerfile deleted file mode 100644 index 2616ea0a4..000000000 --- a/indexers/rewards-squid/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -FROM node:20-alpine AS node -FROM node AS node-with-gyp -RUN apk add g++ make python3 -FROM node-with-gyp AS builder -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -ADD assets assets -ADD db db -ADD schema.graphql . -RUN npm ci -ADD tsconfig.json . -ADD src src -RUN npm run build -FROM node-with-gyp AS deps -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -RUN npm install -g npm@10.5.2 && npm ci --production - -FROM node AS squid -WORKDIR /squid -COPY --from=deps /squid/package.json . -COPY --from=deps /squid/package-lock.json . -COPY --from=deps /squid/node_modules node_modules -COPY --from=builder /squid/lib lib -COPY --from=builder /squid/assets assets -COPY --from=builder /squid/db db -COPY --from=builder /squid/schema.graphql schema.graphql -ADD commands.json . -RUN echo -e "loglevel=silent\\nupdate-notifier=false" > /squid/.npmrc -RUN npm i -g @subsquid/commands && mv $(which squid-commands) /usr/local/bin/sqd -EXPOSE 3000 -EXPOSE 4350 -ENV PROCESSOR_PROMETHEUS_PORT 3000 - -FROM squid AS processor -CMD ["sqd", "process:prod"] diff --git a/indexers/rewards-squid/LICENSE b/indexers/rewards-squid/LICENSE deleted file mode 100644 index 7ef99c6a7..000000000 --- a/indexers/rewards-squid/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Subsquid Labs - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE 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. diff --git a/indexers/rewards-squid/README.md b/indexers/rewards-squid/README.md deleted file mode 100644 index f3f94f844..000000000 --- a/indexers/rewards-squid/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# Rewards-Squid Indexer - -Rewards-Squid specializes in indexing and processing reward distribution events on the Astral blockchain. It is crucial for applications that need detailed insights into reward allocations and distributions. - -## Overview - -- Efficiently captures and indexes reward transactions and distribution events. -- Makes reward data readily available via a GraphQL API for easy consumption. - -## Getting Started - -To set up and use the Rewards-Squid indexer: - -1. Install Node.js (version 16.x or above) and Docker on your machine. -2. Clone the repository and navigate to the `rewards-squid` directory. -3. Follow instructions to install dependencies and start the indexing services. - -## Development Guidelines - -- Follow the project’s code standards and commit guidelines. -- Ensure that all changes are well-tested and documented. -- Engage with the community through issues and pull requests to discuss major changes. - -## Resources - -- [Original Squid Template](https://github.com/subsquid-labs/squid-substrate-template) - Base template for Squid projects. -- [Subsquid Deployment Guide](https://docs.subsquid.io/deploy-squid/) - Learn how to deploy and manage your squid instances. - -## License - -Rewards-Squid is provided under the MIT License, aligning with the licensing of the entire Astral project. diff --git a/indexers/rewards-squid/assets/README.MD b/indexers/rewards-squid/assets/README.MD deleted file mode 100644 index 23a55abb7..000000000 --- a/indexers/rewards-squid/assets/README.MD +++ /dev/null @@ -1,3 +0,0 @@ -# Assets - -`assets` is the designated folder for any additional files to be used by the squid, for example a static data file. The folder is added by default to `Dockerfile` and is kept when the squid is deployed to the Aquairum. \ No newline at end of file diff --git a/indexers/rewards-squid/db/migrations/1713160183202-Data.js b/indexers/rewards-squid/db/migrations/1713160183202-Data.js deleted file mode 100644 index 14233ecfb..000000000 --- a/indexers/rewards-squid/db/migrations/1713160183202-Data.js +++ /dev/null @@ -1,103 +0,0 @@ -module.exports = class Data1713160183202 { - name = 'Data1713160183202' - - async up(db) { - await db.query(`CREATE TABLE "reward_event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "block_number" integer NOT NULL, "extrinsic_hash" text, "amount" numeric, "account_id" character varying, CONSTRAINT "PK_212058fe00a4e4ad6f433833992" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_32c335d826e7606e7dec0bcd59" ON "reward_event" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_dcefc6529930bf025676463725" ON "reward_event" ("block_number") `) - await db.query(`CREATE INDEX "IDX_53ac1d5bf31f15640e4d54820a" ON "reward_event" ("extrinsic_hash") `) - await db.query(`CREATE INDEX "IDX_ff1b646bb31ccbc8e1b2f868bd" ON "reward_event" ("account_id") `) - await db.query(`CREATE TABLE "deposit" ("id" character varying NOT NULL, "block_number" integer NOT NULL, "amount" numeric, "nominator_account" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "extrinsic_hash" text, "operator_id" character varying, "nominator_id" character varying, CONSTRAINT "PK_6654b4be449dadfd9d03a324b61" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_230a90fc5a10c7ac5ac35397d2" ON "deposit" ("block_number") `) - await db.query(`CREATE INDEX "IDX_c2f2cfaa2b294c75d38a57e380" ON "deposit" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_b673efd4ec207b203e4d06abe9" ON "deposit" ("nominator_id") `) - await db.query(`CREATE INDEX "IDX_a37222607a86476fa124313c51" ON "deposit" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_b1d1dadac59ff00a27b4ef18cf" ON "deposit" ("extrinsic_hash") `) - await db.query(`CREATE TABLE "operator_reward_event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "block_number" integer NOT NULL, "extrinsic_hash" text, "amount" numeric NOT NULL, "operator_id" character varying, CONSTRAINT "PK_721a9f907ad1f01a5abed1f2e8e" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_b9cf23c6256a9fc7e01a271376" ON "operator_reward_event" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_2b8b8fd9152da4d7ba4b71080c" ON "operator_reward_event" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_d878c755d920f1be253bad97dd" ON "operator_reward_event" ("block_number") `) - await db.query(`CREATE INDEX "IDX_83b9c467963de152d3e83dcf58" ON "operator_reward_event" ("extrinsic_hash") `) - await db.query(`CREATE TABLE "operator" ("id" character varying NOT NULL, "signing_key" text NOT NULL, "operator_owner" text, "ordering_id" integer NOT NULL, "current_domain_id" integer, "next_domain_id" integer, "minimum_nominator_stake" numeric, "nomination_tax" integer, "current_total_stake" numeric, "current_epoch_rewards" numeric, "total_shares" numeric, "nominator_amount" integer NOT NULL, "status" text, "updated_at" integer, CONSTRAINT "PK_8b950e1572745d9f69be7748ae8" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_51b6c3609906ff3cd25e39e1b2" ON "operator" ("signing_key") `) - await db.query(`CREATE INDEX "IDX_5ae5d5e1878c2fbe2edbf18330" ON "operator" ("operator_owner") `) - await db.query(`CREATE INDEX "IDX_5dbe10dbb2aa428088e61574d9" ON "operator" ("ordering_id") `) - await db.query(`CREATE INDEX "IDX_b0357fd28c43547900d34af4a4" ON "operator" ("nominator_amount") `) - await db.query(`CREATE INDEX "IDX_d6d18ca05472785030a7a3963b" ON "operator" ("updated_at") `) - await db.query(`CREATE TABLE "nominator" ("id" character varying NOT NULL, "shares" numeric, "status" text NOT NULL, "updated_at" integer, "operator_id" character varying, "account_id" character varying, CONSTRAINT "PK_7489b7a79b066f2660eab25f60b" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_14374f281ccb6e72c55dab3c20" ON "nominator" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_917636e6d1130ea9506eaeafef" ON "nominator" ("account_id") `) - await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) - await db.query(`CREATE TABLE "domain_epoch" ("id" character varying NOT NULL, "domain_id" integer NOT NULL, "epoch" integer NOT NULL, "updated_at" integer, CONSTRAINT "PK_7ffa6704fb3cfccc7127e6fdf36" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_49d0353f55bd117f11a6d6b10e" ON "domain_epoch" ("domain_id") `) - await db.query(`CREATE TABLE "account_reward" ("id" character varying NOT NULL, "total_rewards" numeric, "block" numeric, "vote" numeric, "operator" numeric, "updated_at" integer NOT NULL, "account_id" character varying, CONSTRAINT "PK_adb38c63a4196415a50dfffea86" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_7771dd1572b239c78e09e06b15" ON "account_reward" ("account_id") `) - await db.query(`CREATE INDEX "IDX_3f4a43ba0de3315191dac832b8" ON "account_reward" ("updated_at") `) - await db.query(`CREATE TABLE "operator_reward" ("id" character varying NOT NULL, "amount" numeric, "updated_at" integer NOT NULL, CONSTRAINT "PK_81925489709706b633c09e4a3cb" PRIMARY KEY ("id"))`) - await db.query(`CREATE TABLE "operator_unlocked_funds" ("id" character varying NOT NULL, "block_number" integer NOT NULL, "nominator_account" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "extrinsic_hash" text, "amount" numeric, "operator_id" character varying, "nominator_id" character varying, CONSTRAINT "PK_88e0c471830b6c83ae6df8e561a" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_c5936076e548d50542cf776289" ON "operator_unlocked_funds" ("block_number") `) - await db.query(`CREATE INDEX "IDX_8d1c61c4fa2cbdf5da095a3ffd" ON "operator_unlocked_funds" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_2fff22e92b7b71ed2f39466e57" ON "operator_unlocked_funds" ("nominator_id") `) - await db.query(`CREATE INDEX "IDX_48c8e45b0ff8c212f11e4a68df" ON "operator_unlocked_funds" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_f01f1314fe38bc670d2a48fe1a" ON "operator_unlocked_funds" ("extrinsic_hash") `) - await db.query(`ALTER TABLE "reward_event" ADD CONSTRAINT "FK_ff1b646bb31ccbc8e1b2f868bd4" FOREIGN KEY ("account_id") REFERENCES "account"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "deposit" ADD CONSTRAINT "FK_c2f2cfaa2b294c75d38a57e380a" FOREIGN KEY ("operator_id") REFERENCES "operator"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "deposit" ADD CONSTRAINT "FK_b673efd4ec207b203e4d06abe9c" FOREIGN KEY ("nominator_id") REFERENCES "nominator"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "operator_reward_event" ADD CONSTRAINT "FK_b9cf23c6256a9fc7e01a2713761" FOREIGN KEY ("operator_id") REFERENCES "operator"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "nominator" ADD CONSTRAINT "FK_14374f281ccb6e72c55dab3c209" FOREIGN KEY ("operator_id") REFERENCES "operator"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "nominator" ADD CONSTRAINT "FK_917636e6d1130ea9506eaeafef9" FOREIGN KEY ("account_id") REFERENCES "account"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "account_reward" ADD CONSTRAINT "FK_7771dd1572b239c78e09e06b15c" FOREIGN KEY ("account_id") REFERENCES "account"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "operator_unlocked_funds" ADD CONSTRAINT "FK_8d1c61c4fa2cbdf5da095a3ffd0" FOREIGN KEY ("operator_id") REFERENCES "operator"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "operator_unlocked_funds" ADD CONSTRAINT "FK_2fff22e92b7b71ed2f39466e57f" FOREIGN KEY ("nominator_id") REFERENCES "nominator"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - } - - async down(db) { - await db.query(`DROP TABLE "reward_event"`) - await db.query(`DROP INDEX "public"."IDX_32c335d826e7606e7dec0bcd59"`) - await db.query(`DROP INDEX "public"."IDX_dcefc6529930bf025676463725"`) - await db.query(`DROP INDEX "public"."IDX_53ac1d5bf31f15640e4d54820a"`) - await db.query(`DROP INDEX "public"."IDX_ff1b646bb31ccbc8e1b2f868bd"`) - await db.query(`DROP TABLE "deposit"`) - await db.query(`DROP INDEX "public"."IDX_230a90fc5a10c7ac5ac35397d2"`) - await db.query(`DROP INDEX "public"."IDX_c2f2cfaa2b294c75d38a57e380"`) - await db.query(`DROP INDEX "public"."IDX_b673efd4ec207b203e4d06abe9"`) - await db.query(`DROP INDEX "public"."IDX_a37222607a86476fa124313c51"`) - await db.query(`DROP INDEX "public"."IDX_b1d1dadac59ff00a27b4ef18cf"`) - await db.query(`DROP TABLE "operator_reward_event"`) - await db.query(`DROP INDEX "public"."IDX_b9cf23c6256a9fc7e01a271376"`) - await db.query(`DROP INDEX "public"."IDX_2b8b8fd9152da4d7ba4b71080c"`) - await db.query(`DROP INDEX "public"."IDX_d878c755d920f1be253bad97dd"`) - await db.query(`DROP INDEX "public"."IDX_83b9c467963de152d3e83dcf58"`) - await db.query(`DROP TABLE "operator"`) - await db.query(`DROP INDEX "public"."IDX_51b6c3609906ff3cd25e39e1b2"`) - await db.query(`DROP INDEX "public"."IDX_5ae5d5e1878c2fbe2edbf18330"`) - await db.query(`DROP INDEX "public"."IDX_5dbe10dbb2aa428088e61574d9"`) - await db.query(`DROP INDEX "public"."IDX_b0357fd28c43547900d34af4a4"`) - await db.query(`DROP INDEX "public"."IDX_d6d18ca05472785030a7a3963b"`) - await db.query(`DROP TABLE "nominator"`) - await db.query(`DROP INDEX "public"."IDX_14374f281ccb6e72c55dab3c20"`) - await db.query(`DROP INDEX "public"."IDX_917636e6d1130ea9506eaeafef"`) - await db.query(`DROP TABLE "account"`) - await db.query(`DROP TABLE "domain_epoch"`) - await db.query(`DROP INDEX "public"."IDX_49d0353f55bd117f11a6d6b10e"`) - await db.query(`DROP TABLE "account_reward"`) - await db.query(`DROP INDEX "public"."IDX_7771dd1572b239c78e09e06b15"`) - await db.query(`DROP INDEX "public"."IDX_3f4a43ba0de3315191dac832b8"`) - await db.query(`DROP TABLE "operator_reward"`) - await db.query(`DROP TABLE "operator_unlocked_funds"`) - await db.query(`DROP INDEX "public"."IDX_c5936076e548d50542cf776289"`) - await db.query(`DROP INDEX "public"."IDX_8d1c61c4fa2cbdf5da095a3ffd"`) - await db.query(`DROP INDEX "public"."IDX_2fff22e92b7b71ed2f39466e57"`) - await db.query(`DROP INDEX "public"."IDX_48c8e45b0ff8c212f11e4a68df"`) - await db.query(`DROP INDEX "public"."IDX_f01f1314fe38bc670d2a48fe1a"`) - await db.query(`ALTER TABLE "reward_event" DROP CONSTRAINT "FK_ff1b646bb31ccbc8e1b2f868bd4"`) - await db.query(`ALTER TABLE "deposit" DROP CONSTRAINT "FK_c2f2cfaa2b294c75d38a57e380a"`) - await db.query(`ALTER TABLE "deposit" DROP CONSTRAINT "FK_b673efd4ec207b203e4d06abe9c"`) - await db.query(`ALTER TABLE "operator_reward_event" DROP CONSTRAINT "FK_b9cf23c6256a9fc7e01a2713761"`) - await db.query(`ALTER TABLE "nominator" DROP CONSTRAINT "FK_14374f281ccb6e72c55dab3c209"`) - await db.query(`ALTER TABLE "nominator" DROP CONSTRAINT "FK_917636e6d1130ea9506eaeafef9"`) - await db.query(`ALTER TABLE "account_reward" DROP CONSTRAINT "FK_7771dd1572b239c78e09e06b15c"`) - await db.query(`ALTER TABLE "operator_unlocked_funds" DROP CONSTRAINT "FK_8d1c61c4fa2cbdf5da095a3ffd0"`) - await db.query(`ALTER TABLE "operator_unlocked_funds" DROP CONSTRAINT "FK_2fff22e92b7b71ed2f39466e57f"`) - } -} diff --git a/indexers/rewards-squid/docker-compose-local.yml b/indexers/rewards-squid/docker-compose-local.yml deleted file mode 100644 index c6f69f72b..000000000 --- a/indexers/rewards-squid/docker-compose-local.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: "3" - -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: rewards-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "${DB_PORT}:5432" diff --git a/indexers/rewards-squid/docker-compose.yml b/indexers/rewards-squid/docker-compose.yml deleted file mode 100644 index c7958ea75..000000000 --- a/indexers/rewards-squid/docker-compose.yml +++ /dev/null @@ -1,39 +0,0 @@ -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: rewards-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "5432:5432" - # command: ["postgres", "-c", "log_statement=all"] - volumes: - - ./data/db:/var/lib/postgresql/data - api: - image: ghcr.io/subspace/blockexplorer-rewards:latest - environment: - - DB_NAME=rewards-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - - GQL_PORT=4350 - ports: - # GraphQL endpoint at port 4350 - - "4350:4350" - command: ["sqd", "serve:prod"] - depends_on: - - db - processor: - image: ghcr.io/subspace/blockexplorer-rewards:latest - environment: - - DB_NAME=rewards-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - ports: - # prometheus metrics exposed at port 3000 - - "3000:3000" - command: ["sqd", "process:prod"] - depends_on: - - db diff --git a/indexers/rewards-squid/gemini3g.jsonl b/indexers/rewards-squid/gemini3g.jsonl deleted file mode 100644 index e9e2a7a6f..000000000 --- a/indexers/rewards-squid/gemini3g.jsonl +++ /dev/null @@ -1,6 +0,0 @@ -{"specName":"subspace","specVersion":0,"blockNumber":0,"blockHash":"0x418040fc282f5e5ddd432c46d05297636f6f75ce68d66499ff4cbda69ccd180b","metadata":"0x6d6574610ee504000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173650501011450686173650001146576656e7450010445000118746f70696373090101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000205375627370616365040078017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400d401706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e0018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400f4018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f0400fc016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465727c01345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657994013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e7c086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788001305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748401445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b8c01444c6173744172636869766564426c6f636b00000000800c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008801745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d0000880000033000000008008c086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739001544172636869766564426c6f636b50726f6772657373000090086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000940c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040098013c737232353531393a3a5075626c69630000980c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e740404540001105c53746f7261676546656573457363726f774368616e67650801186265666f726518013042616c616e63654f663c543e04d05374617465206f662073746f72616765206665657320657363726f77206265666f726520626c6f636b20657865637574696f6e2e0114616674657218013042616c616e63654f663c543e04cc5374617465206f662073746f72616765206665657320657363726f7720616674657220626c6f636b20657865637574696f6e2e00046c53746f72616765206665657320657363726f77206368616e67652e4453746f726167654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f66207468652073746f7261676520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e01043453746f7261676520666565732e44436f6d707574654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f662074686520636f6d7075746520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e020434436f6d7075746520666565732e285469707352657761726408010c77686f000130543a3a4163636f756e74496404505265636569766572206f6620746865207469702e0118616d6f756e7418013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e030414546970732e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501640108084f6b0400c0000000000c4572720400640000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e7404045400013c3042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f7249640008003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000900445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000b0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000c004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e000d0078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e4964000e00047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65d8015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d808306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64dc011c42616c616e63650000dc0000061800e00c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964e4011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e801244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964e4011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e801244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964e4011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e801244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964e4011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964e801244368616e6e656c496404284368616e6e656c20497301146e6f6e6365e801144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e6365000118726573756c74f0014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964e4011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964e801244368616e6e656c496404284368616e6e656c20497301146e6f6e6365e801144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473e40c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000e8083c7072696d69746976655f7479706573105532353600000400ec01205b7536343b20345d0000ec000003040000002c00f0084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f7200010000f40c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964e4011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964e4011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964e4011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964e4011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722ef800000408e8e800fc0c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e6765640401286f6c645f7375646f6572010101504f7074696f6e3c543a3a4163636f756e7449643e04ac546865206f6c64207375646f206b6579206966206f6e65207761732070726576696f75736c79207365742e010478546865207375646f206b657920686173206265656e20757064617465642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0204c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574010104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000050108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000090100000230000d01000002110100110100000408101000150108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e1901014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d651d01016473705f72756e74696d653a3a52756e74696d65537472696e670000190100000610001d0100000502002101000005000025010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73290101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b657973310101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29010000022d01002d01000004083434003101000002340035010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373390101845065724469737061746368436c6173733c57656967687473506572436c6173733e000039010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454013d01000c01186e6f726d616c3d0101045400012c6f7065726174696f6e616c3d010104540001246d616e6461746f72793d0101045400003d010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e736963410101384f7074696f6e3c5765696768743e0001246d61785f746f74616c410101384f7074696f6e3c5765696768743e0001207265736572766564410101384f7074696f6e3c5765696768743e0000410104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000045010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178490101545065724469737061746368436c6173733c7533323e000049010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400004d01082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005101082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d651d01013452756e74696d65537472696e67000124696d706c5f6e616d651d01013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735501011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800005501040c436f77040454015901000400590100000059010000025d01005d01000004086101100061010000030800000008006501000005040069010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c65746d010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7101084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000750104284e6f6e5a65726f55333200000400100000007901085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578747d01012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578747d01012c4f7074696f6e3c7536343e00007d0104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000081010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008501083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f7471010110536c6f7400012c706172656e745f736c6f7471010110536c6f7400008901000004149465018d0191017101008d010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006501010c753136000091010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009501000004189465018d019101710100009901042042547265654d617008044b0189010456019d01000400ad010000009d010000040800a10100a1010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400a5010148737232353531393a3a5369676e61747572650000a5010c1c73705f636f72651c73723235353139245369676e617475726500000400a90101205b75383b2036345d0000a901000003400000000800ad01000002b10100b1010000040889019d0100b501042042547265654d617008044b0110045601b901000400c101000000b9010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74bd0101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000bd0104184f7074696f6e0404540171010108104e6f6e6500000010536f6d65040071010000010000c101000002c50100c5010000040810b90100c901086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000cd010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c04045400011c4c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d1010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273d90101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964657d01012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964657d01012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465dd0101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e38656e61626c655f72657761726473040118686569676874d001644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0004047c536565205b6050616c6c65743a3a656e61626c655f72657761726473605d2e54656e61626c655f73746f726167655f61636365737300050498536565205b6050616c6c65743a3a656e61626c655f73746f726167655f616363657373605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000604ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed101084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d5010849640194001001206f6666656e6465729401084964000110736c6f7471010110536c6f7400013066697273745f686561646572d50101184865616465720001347365636f6e645f686561646572d50101184865616465720000d501102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572190101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000d9010000027c00dd01085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e1010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a101013c4661726d65725369676e61747572650000e101085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f7471010110536c6f74000120736f6c7574696f6ee50101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6505020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6505020124506f744f757470757400000000e501086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019434526577617264416464726573730100002801287075626c69635f6b65799401245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786501012c536563746f72496e646578000130686973746f72795f73697a65e901012c486973746f727953697a6500013070696563655f6f66667365748d01012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f10101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373f50101345265636f72645769746e6573730001146368756e6b910101185363616c61720001346368756e6b5f7769746e657373f90101304368756e6b5769746e65737300013870726f6f665f6f665f7370616365fd010120506f7350726f6f660000e9010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400ed0101284e6f6e5a65726f5536340000ed0104284e6f6e5a65726f553634000004002c000000f1010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008801705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000f5010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008801645b75383b205265636f72645769746e6573733a3a53495a455d0000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008801605b75383b204368756e6b5769746e6573733a3a53495a455d0000fd01086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400010201405b75383b2053656c663a3a53495a455d00000102000003a000000008000502086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d00000902000004082c2c000d0200000408e901e9010011020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e15020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720194000401206f6666656e6465729401204f6666656e6465720000190200000408a034001d020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012102045300000400290201185665633c543e000021020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964610101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e732502011c526561736f6e73000025020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000029020000022102002d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013102045300000400350201185665633c543e000031020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720161011c42616c616e6365011800080108696461010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000350200000231020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d020453000004004d0201185665633c543e00003d020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640141021c42616c616e63650118000801086964410201084964000118616d6f756e7418011c42616c616e636500004102084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040045020154446f6d61696e73486f6c644964656e746966696572000000004502082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e670400490201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e4964000100004902082873705f646f6d61696e73545374616b696e67486f6c644964656e74696669657200010c3850656e64696e674465706f73697404002c01284f70657261746f724964000000185374616b656404002c01284f70657261746f7249640001003450656e64696e67556e6c6f636b04002c01284f70657261746f724964000200004d020000023d020051020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015502045300000400590201185665633c543e000055020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e6365000059020000025502005d020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365610201504163636f756e7449644c6f6f6b75704f663c543e00011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374610201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c69766521010110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f6d0201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e61020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400650201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400690201205b75383b2032305d000400006502000006c00069020000031400000008006d02000002000071020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000079020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800007d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000081020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465786501010c75313600011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e71030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e85020000028902008902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400250101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d7004006d0101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400cd0101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e63657304005d0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400810201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304008d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e6669677304002d0301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400310301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400390301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400610301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f04006d0301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400008d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000130347375626d69745f62756e646c650401346f70617175655f62756e646c65910201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66c50201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d651d010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967110301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669671d030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964c80120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f72496400012077697468647261772903015857697468647261773c42616c616e63654f663c543e3e0009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e606175746f5f7374616b655f626c6f636b5f7265776172647304012c6f70657261746f725f69642c01284f70657261746f724964000a04a4536565205b6050616c6c65743a3a6175746f5f7374616b655f626c6f636b5f72657761726473605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973742103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9102082873705f646f6d61696e731842756e646c65142445787472696e736963019502184e756d62657201101048617368013030446f6d61696e48656164657201d5011c42616c616e63650118000801347365616c65645f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373c10201385665633c45787472696e7369633e00009502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e00009902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d5011c42616c616e63650118000801186865616465729d0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265bd0201444f70657261746f725369676e617475726500009d02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d5011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6ea102013c50726f6f664f66456c656374696f6e00011c72656365697074a902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000a102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e0000140124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373c901012852616e646f6d6e6573730001347672665f7369676e6174757265a50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f7249640000a502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801186f75747075740401245672664f757470757400011470726f6f66a901012056726650726f6f660000a902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573ad0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163650901013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000134746f74616c5f7265776172647318011c42616c616e63650000ad02000002b10200b102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65b502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000b502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400b9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000b902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000bd020c2873705f646f6d61696e730c617070245369676e617475726500000400a5010148737232353531393a3a5369676e61747572650000c102000002950200c5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d501012458496e76616c696453746174655472616e736974696f6e0400c90201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400d90201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400dd0201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400e10201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0003004c496e76616c6964546f74616c526577617264730400e50201d4496e76616c6964546f74616c5265776172647350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400e90201dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400050301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400090301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c657304000d0301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000c9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66cd02013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365d5020138457865637574696f6e50686173650000cd020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573d102014442547265655365743c5665633c75383e3e0000d1020420425472656553657404045401340004003101000000d5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e7369630c014870726f6f665f6f665f696e636c7573696f6ecd02013053746f7261676550726f6f660001386d69736d617463685f696e64657810010c75333200012465787472696e73696334011c5665633c75383e0001003446696e616c697a65426c6f636b00020000d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66cd02013053746f7261676550726f6f660000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d50100140124646f6d61696e5f6964c80120446f6d61696e49640001206f6666656e6465720001244163636f756e744964000110736c6f7471010110536c6f7400013066697273745f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000e1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680000e5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c6964546f74616c5265776172647350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66cd02013053746f7261676550726f6f660000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473ed0201585665633c56616c696442756e646c654469676573743e0000ed02000002f10200f1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f646967657374f5020139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000f502000002f90200f90200000408fd02010300fd0204184f7074696f6e04045401340108104e6f6e6500000010536f6d65040034000001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f663c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66cd02013053746f7261676550726f6f6600000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964c80120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065b9020144496e76616c696442756e646c655479706500016465787472696e7369635f696e636c7573696f6e5f70726f6f66cd02013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f6621010110626f6f6c000011030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579150301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781903011c50657263656e74000015030c2873705f646f6d61696e730c617070185075626c69630000040098013c737232353531393a3a5075626c6963000019030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800001d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d651d010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747909020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374210301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00002103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304002503014c42547265655365743c4163636f756e7449643e0001000025030420425472656553657404045401000004006d0200000029030c3870616c6c65745f646f6d61696e731c7374616b696e67205769746864726177041c42616c616e6365011801080c416c6c00000010536f6d65040018011c42616c616e6365000100002d030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000108487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e7321010110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e736665727321010110626f6f6c000104b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65d8015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573350301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3503000002d80039030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964e4011c436861696e4964000118706172616d733d03018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367450301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367450301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c410301444665654d6f64656c3c42616c616e63653e000041030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000045030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964e4011c436861696e49640001306473745f636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e636500011470726f6f66490301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167590301404d657373616765576569676874546167000049030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f4d030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66510301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66cd02013053746f7261676550726f6f6600004d030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000510304184f7074696f6e0404540155030108104e6f6e6500000010536f6d650400550300000100005503000004084d03cd020059030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e745265717565737404005d030120456e64706f696e7400020040456e64706f696e74526573706f6e736504005d030120456e64706f696e74000300104e6f6e65000400005d030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000061030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e650301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6503084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964e4011c436861696e49640001286163636f756e745f6964690301384d756c74694163636f756e744964000069030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400690201205b75383b2032305d0001000c526177040034011c5665633c75383e000200006d030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577610201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7103084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400750301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400790301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000075030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200007903081c73705f636f726510566f6964000100007d030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e81030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d651d010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369738503012852617747656e6573697300011c76657273696f6e5101013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000085030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f708903013847656e6573697353746f726167650001406368696c6472656e5f64656661756c749d03019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00008903042042547265654d617008044b018d03045601910300040095030000008d030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000091030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e000095030000029903009903000004088d039103009d03042042547265654d617008044b018d030456018903000400a103000000a103000002a50300a503000004088d03890300a9030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369738503012852617747656e6573697300011c76657273696f6e5101013852756e74696d6556657273696f6e00011068617368300110486173680000ad030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273bd03015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000b103042042547265654d617008044b012c04560118000400b503000000b503000002b90300b903000004082c1800bd0304204254726565536574040454012c000400c103000000c1030000022c00c5030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f72081c42616c616e6365011814536861726501180024012c7369676e696e675f6b6579150301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e6365000130746f74616c5f7368617265731801145368617265000118737461747573c90301384f70657261746f725374617475730000c9030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f7253746174757300010c2852656769737465726564000000304465726567697374657265640001001c536c617368656400020000cd03000004082c0000d1030c3870616c6c65745f646f6d61696e731c7374616b696e67244e6f6d696e61746f720414536861726501180004011873686172657318011453686172650000d503000004082c1000d903000002dd0300dd030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63685850656e64696e674e6f6d696e61746f72556e6c6f636b082c4e6f6d696e61746f72496401001c42616c616e63650118000801306e6f6d696e61746f725f696400012c4e6f6d696e61746f72496400011c62616c616e636518011c42616c616e63650000e10300000408c81000e503042042547265654d617008044b012c045601e903000400ed03000000e9030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63686050656e64696e674f70657261746f72536c617368496e666f082c4e6f6d696e61746f72496401001c42616c616e6365011800040150756e6c6f636b696e675f6e6f6d696e61746f7273d90301c45665633c50656e64696e674e6f6d696e61746f72556e6c6f636b3c4e6f6d696e61746f7249642c2042616c616e63653e3e0000ed03000002f10300f103000004082ce90300f5030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001001406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669671d03015c446f6d61696e436f6e6669673c4163636f756e7449643e0000f9030420425472656553657404045401300004000901000000fd030c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074a902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473c103013c5665633c4f70657261746f7249643e000001040000040cc810300005040000040cc810100009040000020d04000d04082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800001104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000015040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765190401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400001904086073756273706163655f636f72655f7072696d6974697665731055323536000004001d040148707269766174655f753235363a3a5532353600001d040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400ec01205b7536343b20345d000021040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604002504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904002904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704002d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400310401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904003504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040039040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e25040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200012848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020074496e76616c6964546f74616c52657761726473467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009000029040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e65736973000800002d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000170444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e63650003003442616c616e6365467265657a65000400504d696e696d756d4f70657261746f725374616b650005003c556e6b6e6f776e4f70657261746f72000600544d696e696d756d4e6f6d696e61746f725374616b650007003c42616c616e63654f766572666c6f770008004042616c616e6365556e646572666c6f77000900404e6f744f70657261746f724f776e6572000a00544f70657261746f724e6f7452656769737465726564000b0040556e6b6e6f776e4e6f6d696e61746f72000c00504578697374696e6746756c6c5769746864726177000d00504d697373696e674f70657261746f724f776e6572000e002c4d696e7442616c616e6365000f004c426c6f636b4e756d6265724f766572666c6f770010002852656d6f76654c6f636b001100285570646174654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f77001500745472794465706f7369745769746850656e64696e6757697468647261770016007454727957697468647261775769746850656e64696e674465706f73697400170078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001800484f70657261746f724e6f74416c6c6f77656400190064496e76616c69644f70657261746f725369676e696e674b6579001a00444d6178696d756d4e6f6d696e61746f7273001b000031040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f7200011c7046696e616c697a655377697463684f70657261746f72446f6d61696e04002d04013c5472616e736974696f6e4572726f720000007846696e616c697a654f70657261746f724465726567697374726174696f6e04002d04013c5472616e736974696f6e4572726f7200010038556e6c6f636b4f70657261746f7204002d04013c5472616e736974696f6e4572726f720002007846696e616c697a65446f6d61696e50656e64696e675472616e736665727304002d04013c5472616e736974696f6e4572726f720003003c556e6c6f636b4e6f6d696e61746f7204002d04013c5472616e736974696f6e4572726f72000400544f70657261746f725265776172645374616b696e6704002d04013c5472616e736974696f6e4572726f7200050034536c6173684f70657261746f7204002d04013c5472616e736974696f6e4572726f720006000035040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e496400030058496e76616c6964536c6f7450726f626162696c6974790004003c52756e74696d654e6f74466f756e6400050040496e73756666696369656e7446756e6400060044446f6d61696e4e616d65546f6f4c6f6e670007003442616c616e6365467265657a65000800804661696c6564546f47656e657261746547656e657369735374617465526f6f7400090038446f6d61696e4e6f74466f756e64000a00384e6f74446f6d61696e4f776e6572000b000039040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013058496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e6564526563656970740004004442616447656e657369735265636569707400050054556e657870656374656452656365697074547970650006004c4d617848656164446f6d61696e4e756d6265720007007c4d756c7469706c6545527341667465724368616c6c656e6765506572696f64000800484d697373696e67446f6d61696e426c6f636b00090040496e76616c69645472616365526f6f74000a0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000b00003d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d8045300000400350301185665633c543e000041040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e450400000408e4e8004904084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964e801244368616e6e656c496400011473746174654d0401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365e801144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365e801144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365510401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565410301444665654d6f64656c3c42616c616e63653e00004d04084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000510404184f7074696f6e04045401e80108104e6f6e6500000010536f6d650400e8000001000055040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964e4011c436861696e49640001306473745f636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e636500011c7061796c6f61645904016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365510401344f7074696f6e3c4e6f6e63653e000059040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e63650118010408563004005d0401405061796c6f61643c42616c616e63653e000000005d040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400610401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400690401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000061040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401650420526573706f6e736501bc01081c5265717565737404006504011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000065040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e04003d030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000069040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c52657175657374016d0420526573706f6e736501710401081c5265717565737404006d04011c5265717565737400000020526573706f6e7365040071040120526573706f6e7365000100006d040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e745d030120456e64706f696e740001306473745f656e64706f696e745d030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f6164000071040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000750400000408e4f80079040000040ce4e8e8007d040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78810401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573810401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000810400000285040085040000040ce4f859030089040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e04008d040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f72738d040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200009104084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572650301204c6f636174696f6e0001207265636569766572650301204c6f636174696f6e000095040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e99040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c65749d04102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730161021043616c6c018902245369676e617475726501a10414457874726101b10400040034000000a104082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400a5040148656432353531393a3a5369676e61747572650000001c537232353531390400a5010148737232353531393a3a5369676e61747572650001001445636473610400a904014065636473613a3a5369676e617475726500020000a5040c1c73705f636f72651c65643235353139245369676e617475726500000400a90101205b75383b2036345d0000a9040c1c73705f636f7265146563647361245369676e617475726500000400ad0401205b75383b2036355d0000ad04000003410000000800b10400000428b504b904bd04c104c504cd04d104d504d904dd0400b50410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000b90410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000bd0410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000c10410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000c50410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400c904010c4572610000c904102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000cd0410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040019010120543a3a4e6f6e63650000d10410306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000d504086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000d9040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000dd040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000e104084073756273706163655f72756e74696d651c52756e74696d65000000003c1853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402300d010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000150104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010021010400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010021010400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000501040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01250101541830426c6f636b576569676874733501f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746845013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768744d014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5101310320737562737061636520737562737061636500000000000000000000000038df6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be0100000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978650108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e016901002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2444696455706461746501002101040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f016d010004344d696e696d756d506572696f642c20f401000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f74010071012000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100710120000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007501040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100790148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e67650100210104000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008101040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f74000071010400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040594c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040580840400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e7448656164657273010021010400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000085010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000089010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e5843757272656e74426c6f636b417574686f72496e666f000095010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f7465727301009901040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f74657273000099010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100b501040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000c9010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58497353746f72616765416363657373456e61626c6564010021010400049420456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e58416c6c6f77417574686f72696e674279416e796f6e6501002101040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009404000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01cd010178344c426c6f636b417574686f72696e6744656c61797101200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c61797101200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974790902400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473e901200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e0d024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65e901200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72650108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782901110202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405301502040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505190209010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a034040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473000001a4082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402001d02040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402002d02040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020039020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020051020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e015d0201a814484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017102053c5472616e73616374696f6e46656573013c5472616e73616374696f6e466565731068436f6c6c656374656453746f7261676546656573457363726f770100184000000000000000000000000000000000085d0120457363726f77206f662073746f7261676520666565732c206120706f7274696f6e206f662069742069732072656c656173656420746f2074686520626c6f636b20617574686f72206f6e20657665727920626c6f636bd420616e6420706f7274696f6e206f662073746f72616765206665657320676f6573206261636b20696e746f207468697320706f742e485472616e73616374696f6e427974654665650000180400083d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e73206361636865642076616c7565206f66a020605472616e73616374696f6e427974654665656020666f722063757272656e7420626c6f636b2e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765b42063616e206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000750204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616ea4206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b018504d696e5265706c69636174696f6e466163746f726501080100084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e7053746f7261676546656573457363726f77426c6f636b5265776172640902400100000000000000102700000000000008490120486f77206d7563682028726174696f29206f662073746f72616765206665657320657363726f772073686f756c6420626520676976656e20746f206661726d6572206561636820626c6f636b206173206120207265776172642e6453746f7261676546656573457363726f77426c6f636b54617809024001000000000000000a0000000000000008590120486f77206d7563682028726174696f29206f662073746f72616765206665657320636f6c6c656374656420696e206120626c6f636b2073686f756c642062652070757420696e746f2073746f726167652066656573d820657363726f772028776974682072656d61696e696e672069737375656420746f206661726d657220696d6d6564696174656c79292e30437265646974537570706c791840000050f732e897cad8fb06000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c656467656418400077813e00000000000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400000000000000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100790240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01007d020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001810201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e017d03081c446f6d61696e73011c446f6d61696e7384445375636365737366756c42756e646c657301010406c80901040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e3c52756e74696d65526567697374727900010406108103040000605363686564756c656452756e74696d65557067726164657300010806061101a903040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c0004000050446f6d61696e5374616b696e6753756d6d61727900010406c8ad03040000244f70657261746f7273000104062cc503040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406c8bd0304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e284e6f6d696e61746f72730001080606cd03d1030400044101204c697374206f6620616c6c2063757272656e742065706f63682773206e6f6d696e61746f727320616e642074686569722073686172657320756e646572206120676976656e206f70657261746f722c384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3c50656e64696e674465706f736974730001080606cd031804000cd0204465706f7369747320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c207468657365206465706f7369747320617265207374616b656420626567696e6e696e67206e6578742065706f63682e4850656e64696e675769746864726177616c730001080606cd03290304000cdc205769746864726177616c7320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c2074686573652077696c6c206265206d6f76656420746f2050656e64696e674e6f6d696e61746f72556e6c6f636b732e7850656e64696e674f70657261746f724465726567697374726174696f6e7300010406c8bd03040008c4204f70657261746f72732077686f2063686f736520746f20646572656769737465722066726f6d206120646f6d61696e2ee02053746f72656420686572652074656d706f726172696c7920756e74696c20646f6d61696e2065706f636820697320636f6d706c6574652e5850656e64696e674f70657261746f72556e6c6f636b730100bd0304000c0d012053746f7265732061206c697374206f66206f70657261746f72732077686f2061726520756e6c6f636b696e6720696e2074686520636f6d696e6720626c6f636b732ee820546865206f70657261746f722077696c6c2062652072656d6f766564207768656e20746865207761697420706572696f64206973206f76657284206f72207768656e20746865206f70657261746f7220697320736c61736865642e5c50656e64696e674e6f6d696e61746f72556e6c6f636b730001080606d503d903040008b020416c6c207468652070656e64696e6720756e6c6f636b7320666f7220746865206e6f6d696e61746f72732e91012057652075736520746869732073746f7261676520746f20666574636820616c6c207468652070656e64696e6720756e6c6f636b7320756e6465722061206f70657261746f7220706f6f6c206174207468652074696d65206f6620736c617368696e672e3850656e64696e67556e6c6f636b7300010406e103bd0304000841012041206c697374206f66206f70657261746f72732074686174206172652065697468657220756e7265676973746572696e67206f72206f6e65206d6f7265206f6620746865206e6f6d696e61746f72738c20617265207769746864726177696e6720736f6d65207374616b65642066756e64732e3850656e64696e67536c617368657300010406c8e50304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8f503040004502054686520646f6d61696e20726567697374727924426c6f636b547265650101080606e103f9030400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f6465730001040630fd030400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b58446f6d61696e426c6f636b44657363656e64616e74730101040630f9030400004448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e285374617465526f6f747300010406010430040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b486173680001080606e1033004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606050409040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c81104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c445072656665727265644f70657261746f7200010406002c0400085901204120707265666572726564204f70657261746f7220666f72206120676976656e204661726d65722c20656e61626c696e67206175746f6d61746963207374616b696e67206f6620626c6f636b20726577617264732e810120466f7220746865206175746f2d7374616b696e6720746f20737563636565642c20746865204661726d6572206d75737420616c736f2062652061204e6f6d696e61746f72206f662074686520707265666572726564204f70657261746f722e48446f6d61696e547852616e6765537461746500010406c81504040000018d0201c44048436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810100001000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b65184000409452a30300000000000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e705374616b655769746864726177616c4c6f636b696e67506572696f64101000010000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e0121040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967730c34456e61626c65446f6d61696e7301002101040004c0205768657468657220746f2064697361626c65207468652063616c6c7320696e2070616c6c65742d646f6d61696e732e58456e61626c6542616c616e63655472616e736665727301002101040004dc205768657468657220746f2064697361626c6520746865206e6f726d616c2062616c616e636573207472616e736665722063616c6c732e48436f6e6669726d6174696f6e44657074684b010010100000000000012d030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c657301010402003d0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01310301d404444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0141040d244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406e4e880000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060645044904040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000055040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040675041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406750418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104067904550404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104067904550404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300005504040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d6573736167657300007d040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01390301e0000189043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e7366657273000108060675049104040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e01610301f4000195043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e016d0301fc00019904649d04042848436865636b4e6f6e5a65726f53656e646572b504c040436865636b5370656356657273696f6eb9041038436865636b547856657273696f6ebd041030436865636b47656e65736973c1043038436865636b4d6f7274616c697479c5043028436865636b4e6f6e6365cd04c02c436865636b576569676874d104c0604368617267655472616e73616374696f6e5061796d656e74d504c048436865636b53746f72616765416363657373d904c03844697361626c6550616c6c657473dd04c0e104"} -{"specName":"subspace","specVersion":1,"blockNumber":73235,"blockHash":"0xaf11886f02929799aa318e4a1d2fc3d1882bcda52330b70e0fe14a99e9f3946e","metadata":"0x6d6574610ee104000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173650101011450686173650001146576656e7450010445000118746f70696373050101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000205375627370616365040078017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400d001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400dc018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400f0018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f0400f8016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465727c01345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657994013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e7c086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788001305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748401445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b8c01444c6173744172636869766564426c6f636b00000000800c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008801745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d0000880000033000000008008c086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739001544172636869766564426c6f636b50726f6772657373000090086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000940c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040098013c737232353531393a3a5075626c69630000980c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e740404540001105c53746f7261676546656573457363726f774368616e67650801186265666f726518013042616c616e63654f663c543e04d05374617465206f662073746f72616765206665657320657363726f77206265666f726520626c6f636b20657865637574696f6e2e0114616674657218013042616c616e63654f663c543e04cc5374617465206f662073746f72616765206665657320657363726f7720616674657220626c6f636b20657865637574696f6e2e00046c53746f72616765206665657320657363726f77206368616e67652e4453746f726167654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f66207468652073746f7261676520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e01043453746f7261676520666565732e44436f6d707574654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f662074686520636f6d7075746520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e020434436f6d7075746520666565732e285469707352657761726408010c77686f000130543a3a4163636f756e74496404505265636569766572206f6620746865207469702e0118616d6f756e7418013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e030414546970732e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501640108084f6b0400c0000000000c4572720400640000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e7404045400013c3042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f7249640008003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000900445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000b0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000c004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d62657210015c446f6d61696e426c6f636b4e756d626572466f723c543e000d0078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e4964000e00047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65d4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64d8011c42616c616e63650000d80000061800dc0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964e0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964e0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964e0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964e0011c436861696e49640001286368616e6e656c5f6964e401244368616e6e656c49640001146e6f6e6365e401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964e0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964e401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365e401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964e0011c436861696e49640001286368616e6e656c5f6964e401244368616e6e656c49640001146e6f6e6365e401144e6f6e6365000118726573756c74ec014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964e0011c436861696e49640001286368616e6e656c5f6964e401244368616e6e656c49640001146e6f6e6365e401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964e0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964e401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365e401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473e00c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000e4083c7072696d69746976655f7479706573105532353600000400e801205b7536343b20345d0000e8000003040000002c00ec084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f7200010000f00c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964e0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f401384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964e0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f401384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964e0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f401384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964e0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964f401384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722ef400000408e4e400f80c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e6765640401286f6c645f7375646f6572fc01504f7074696f6e3c543a3a4163636f756e7449643e04ac546865206f6c64207375646f206b6579206966206f6e65207761732070726576696f75736c79207365742e010478546865207375646f206b657920686173206265656e20757064617465642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0204c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574fc04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000010108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200000501000002300009010000020d01000d0100000408101000110108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e1501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d651901016473705f72756e74696d653a3a52756e74696d65537472696e67000015010000061000190100000502001d01000005000021010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73250101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579732d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e25010000022901002901000004083434002d01000002340031010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373350101845065724469737061746368436c6173733c57656967687473506572436c6173733e000035010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454013901000c01186e6f726d616c390101045400012c6f7065726174696f6e616c39010104540001246d616e6461746f72793901010454000039010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369633d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c3d0101384f7074696f6e3c5765696768743e00012072657365727665643d0101384f7074696f6e3c5765696768743e00003d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000041010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178450101545065724469737061746368436c6173733c7533323e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400004901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400004d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d651901013452756e74696d65537472696e67000124696d706c5f6e616d651901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800005101040c436f77040454015501000400550100000055010000025901005901000004085d0110005d010000030800000008006101000005040065010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657469010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d01084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000710104284e6f6e5a65726f55333200000400100000007501085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578747901012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578747901012c4f7074696f6e3c7536343e0000790104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c00000100007d010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008101083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f746d010110536c6f7400012c706172656e745f736c6f746d010110536c6f74000085010000041494610189018d016d010089010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006101010c75313600008d010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e657204011046734672000091010000041894610189018d016d0100009501042042547265654d617008044b0185010456019901000400a901000000990100000408009d01009d010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400a1010148737232353531393a3a5369676e61747572650000a1010c1c73705f636f72651c73723235353139245369676e617475726500000400a50101205b75383b2036345d0000a501000003400000000800a901000002ad0100ad01000004088501990100b101042042547265654d617008044b0110045601b501000400bd01000000b5010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74b90101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000b90104184f7074696f6e040454016d010108104e6f6e6500000010536f6d6504006d010000010000bd01000002c10100c1010000040810b50100c501086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000c9010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c04045400011c4c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66cd010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273d50101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964657901012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964657901012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465d90101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e38656e61626c655f72657761726473040118686569676874050201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0004047c536565205b6050616c6c65743a3a656e61626c655f72657761726473605d2e54656e61626c655f73746f726167655f61636365737300050498536565205b6050616c6c65743a3a656e61626c655f73746f726167655f616363657373605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000604ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd01084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d1010849640194001001206f6666656e6465729401084964000110736c6f746d010110536c6f7400013066697273745f686561646572d10101184865616465720001347365636f6e645f686561646572d10101184865616465720000d101102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572150101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000d5010000027c00d901085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465dd010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e61747572659d01013c4661726d65725369676e61747572650000dd01085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f746d010110536c6f74000120736f6c7574696f6ee10101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6501020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6501020124506f744f757470757400000000e101086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019434526577617264416464726573730100002801287075626c69635f6b65799401245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786101012c536563746f72496e646578000130686973746f72795f73697a65e501012c486973746f727953697a6500013070696563655f6f66667365748901012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74ed0101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373f10101345265636f72645769746e6573730001146368756e6b8d0101185363616c61720001346368756e6b5f7769746e657373f50101304368756e6b5769746e65737300013870726f6f665f6f665f7370616365f9010120506f7350726f6f660000e5010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400e90101284e6f6e5a65726f5536340000e90104284e6f6e5a65726f553634000004002c000000ed010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008801705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000f1010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008801645b75383b205265636f72645769746e6573733a3a53495a455d0000f5010c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008801605b75383b204368756e6b5769746e6573733a3a53495a455d0000f901086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400fd0101405b75383b2053656c663a3a53495a455d0000fd01000003a000000008000102086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d0000050204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100000902000004082c2c000d0200000408e501e5010011020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e15020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720194000401206f6666656e6465729401204f6666656e6465720000190200000408a034001d020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012102045300000400290201185665633c543e000021020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869645d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e732502011c526561736f6e73000025020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000029020000022102002d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013102045300000400350201185665633c543e000031020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572015d011c42616c616e636501180008010869645d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000350200000231020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d020453000004004d0201185665633c543e00003d020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640141021c42616c616e63650118000801086964410201084964000118616d6f756e7418011c42616c616e636500004102084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040045020154446f6d61696e73486f6c644964656e746966696572000000004502082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e670400490201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e4964000100004902082873705f646f6d61696e73545374616b696e67486f6c644964656e74696669657200010c3850656e64696e674465706f73697404002c01284f70657261746f724964000000185374616b656404002c01284f70657261746f7249640001003450656e64696e67556e6c6f636b04002c01284f70657261746f724964000200004d020000023d020051020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015502045300000400590201185665633c543e000055020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e6365000059020000025502005d020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565d80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365610201504163636f756e7449644c6f6f6b75704f663c543e00011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565d80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565d80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374610201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c6976651d010110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f6d0201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565d80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e61020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400650201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400690201205b75383b2032305d000400006502000006c00069020000031400000008006d02000002000071020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000079020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800007d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000081020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465786101010c75313600011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e71030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e85020000028902008902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400210101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400690101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400c90101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e63657304005d0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400810201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304008d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e6669677304002d0301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400310301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400390301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400610301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f04006d0301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400008d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000130347375626d69745f62756e646c650401346f70617175655f62756e646c65910201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66c50201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6519010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967110301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669671d030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964c80120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f72496400012077697468647261772903015857697468647261773c42616c616e63654f663c543e3e0009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e606175746f5f7374616b655f626c6f636b5f7265776172647304012c6f70657261746f725f69642c01284f70657261746f724964000a04a4536565205b6050616c6c65743a3a6175746f5f7374616b655f626c6f636b5f72657761726473605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973742103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9102082873705f646f6d61696e731842756e646c65142445787472696e736963019502184e756d62657201101048617368013030446f6d61696e48656164657201d1011c42616c616e63650118000801347365616c65645f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373c10201385665633c45787472696e7369633e00009502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e00009902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d1011c42616c616e63650118000801186865616465729d0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265bd0201444f70657261746f725369676e617475726500009d02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d1011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6ea102013c50726f6f664f66456c656374696f6e00011c72656365697074a902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000a102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e0000140124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373c501012852616e646f6d6e6573730001347672665f7369676e6174757265a50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f7249640000a502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801186f75747075740401245672664f757470757400011470726f6f66a501012056726650726f6f660000a902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573ad0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163650501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000134746f74616c5f7265776172647318011c42616c616e63650000ad02000002b10200b102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65b502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000b502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400b9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000b902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000bd020c2873705f646f6d61696e730c617070245369676e617475726500000400a1010148737232353531393a3a5369676e61747572650000c102000002950200c5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d101012458496e76616c696453746174655472616e736974696f6e0400c90201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400d90201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400dd0201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400e10201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0003004c496e76616c6964546f74616c526577617264730400e50201d4496e76616c6964546f74616c5265776172647350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400e90201dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400050301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400090301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c657304000d0301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000c9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66cd02013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365d5020138457865637574696f6e50686173650000cd020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573d102014442547265655365743c5665633c75383e3e0000d1020420425472656553657404045401340004002d01000000d5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e7369630c014870726f6f665f6f665f696e636c7573696f6ecd02013053746f7261676550726f6f660001386d69736d617463685f696e64657810010c75333200012465787472696e73696334011c5665633c75383e0001003446696e616c697a65426c6f636b00020000d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66cd02013053746f7261676550726f6f660000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d10100140124646f6d61696e5f6964c80120446f6d61696e49640001206f6666656e6465720001244163636f756e744964000110736c6f746d010110536c6f7400013066697273745f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000e1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680000e5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c6964546f74616c5265776172647350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66cd02013053746f7261676550726f6f660000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473ed0201585665633c56616c696442756e646c654469676573743e0000ed02000002f10200f1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f646967657374f5020139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000f502000002f90200f90200000408fd02010300fd0204184f7074696f6e04045401340108104e6f6e6500000010536f6d65040034000001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f663c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66cd02013053746f7261676550726f6f6600000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964c80120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065b9020144496e76616c696442756e646c655479706500016465787472696e7369635f696e636c7573696f6e5f70726f6f66cd02013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f661d010110626f6f6c000011030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579150301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781903011c50657263656e74000015030c2873705f646f6d61696e730c617070185075626c69630000040098013c737232353531393a3a5075626c6963000019030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800001d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d6519010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747909020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374210301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00002103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304002503014c42547265655365743c4163636f756e7449643e0001000025030420425472656553657404045401000004006d0200000029030c3870616c6c65745f646f6d61696e731c7374616b696e67205769746864726177041c42616c616e6365011801080c416c6c00000010536f6d65040018011c42616c616e6365000100002d030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000108487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e731d010110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e73666572731d010110626f6f6c000104b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65d4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573350301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3503000002d40039030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964e0011c436861696e4964000118706172616d733d03018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964e0011c436861696e49640001286368616e6e656c5f6964e401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367450301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367450301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c410301444665654d6f64656c3c42616c616e63653e000041030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000045030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964e0011c436861696e49640001306473745f636861696e5f6964e0011c436861696e49640001286368616e6e656c5f6964e401244368616e6e656c49640001146e6f6e6365e401144e6f6e636500011470726f6f66490301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167590301404d657373616765576569676874546167000049030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f4d030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66510301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66cd02013053746f7261676550726f6f6600004d030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000510304184f7074696f6e0404540155030108104e6f6e6500000010536f6d650400550300000100005503000004084d03cd020059030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e745265717565737404005d030120456e64706f696e7400020040456e64706f696e74526573706f6e736504005d030120456e64706f696e74000300104e6f6e65000400005d030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000061030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e650301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6503084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964e0011c436861696e49640001286163636f756e745f6964690301384d756c74694163636f756e744964000069030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400690201205b75383b2032305d0001000c526177040034011c5665633c75383e000200006d030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577610201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7103084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400750301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400790301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000075030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200007903081c73705f636f726510566f6964000100007d030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e81030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6519010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369738503012852617747656e6573697300011c76657273696f6e4d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000085030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f708903013847656e6573697353746f726167650001406368696c6472656e5f64656661756c749d03019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00008903042042547265654d617008044b018d03045601910300040095030000008d030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000091030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e000095030000029903009903000004088d039103009d03042042547265654d617008044b018d030456018903000400a103000000a103000002a50300a503000004088d03890300a9030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369738503012852617747656e6573697300011c76657273696f6e4d01013852756e74696d6556657273696f6e00011068617368300110486173680000ad030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273bd03015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000b103042042547265654d617008044b012c04560118000400b503000000b503000002b90300b903000004082c1800bd0304204254726565536574040454012c000400c103000000c1030000022c00c5030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f72081c42616c616e6365011814536861726501180024012c7369676e696e675f6b6579150301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e6365000130746f74616c5f7368617265731801145368617265000118737461747573c90301384f70657261746f725374617475730000c9030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f7253746174757300010c2852656769737465726564000000304465726567697374657265640001001c536c617368656400020000cd03000004082c0000d1030c3870616c6c65745f646f6d61696e731c7374616b696e67244e6f6d696e61746f720414536861726501180004011873686172657318011453686172650000d503000004082c1000d903000002dd0300dd030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63685850656e64696e674e6f6d696e61746f72556e6c6f636b082c4e6f6d696e61746f72496401001c42616c616e63650118000801306e6f6d696e61746f725f696400012c4e6f6d696e61746f72496400011c62616c616e636518011c42616c616e63650000e10300000408c81000e503042042547265654d617008044b012c045601e903000400ed03000000e9030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63686050656e64696e674f70657261746f72536c617368496e666f082c4e6f6d696e61746f72496401001c42616c616e6365011800040150756e6c6f636b696e675f6e6f6d696e61746f7273d90301c45665633c50656e64696e674e6f6d696e61746f72556e6c6f636b3c4e6f6d696e61746f7249642c2042616c616e63653e3e0000ed03000002f10300f103000004082ce90300f5030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001001406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669671d03015c446f6d61696e436f6e6669673c4163636f756e7449643e0000f9030c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074a902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473c103013c5665633c4f70657261746f7249643e0000fd030000040cc810300001040000040cc810100005040000020904000904082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800000d04083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000011040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765150401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400001504086073756273706163655f636f72655f7072696d69746976657310553235360000040019040148707269766174655f753235363a3a55323536000019040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400e801205b7536343b20345d00001d040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604002104013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904002504015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400290401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f636804002d0401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904003104014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040035040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200012848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020074496e76616c6964546f74616c52657761726473467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009000025040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e657369730008000029040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000170444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e63650003003442616c616e6365467265657a65000400504d696e696d756d4f70657261746f725374616b650005003c556e6b6e6f776e4f70657261746f72000600544d696e696d756d4e6f6d696e61746f725374616b650007003c42616c616e63654f766572666c6f770008004042616c616e6365556e646572666c6f77000900404e6f744f70657261746f724f776e6572000a00544f70657261746f724e6f7452656769737465726564000b0040556e6b6e6f776e4e6f6d696e61746f72000c00504578697374696e6746756c6c5769746864726177000d00504d697373696e674f70657261746f724f776e6572000e002c4d696e7442616c616e6365000f004c426c6f636b4e756d6265724f766572666c6f770010002852656d6f76654c6f636b001100285570646174654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f77001500745472794465706f7369745769746850656e64696e6757697468647261770016007454727957697468647261775769746850656e64696e674465706f73697400170078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001800484f70657261746f724e6f74416c6c6f77656400190064496e76616c69644f70657261746f725369676e696e674b6579001a00444d6178696d756d4e6f6d696e61746f7273001b00002d040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f7200011c7046696e616c697a655377697463684f70657261746f72446f6d61696e04002904013c5472616e736974696f6e4572726f720000007846696e616c697a654f70657261746f724465726567697374726174696f6e04002904013c5472616e736974696f6e4572726f7200010038556e6c6f636b4f70657261746f7204002904013c5472616e736974696f6e4572726f720002007846696e616c697a65446f6d61696e50656e64696e675472616e736665727304002904013c5472616e736974696f6e4572726f720003003c556e6c6f636b4e6f6d696e61746f7204002904013c5472616e736974696f6e4572726f72000400544f70657261746f725265776172645374616b696e6704002904013c5472616e736974696f6e4572726f7200050034536c6173684f70657261746f7204002904013c5472616e736974696f6e4572726f720006000031040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e496400030058496e76616c6964536c6f7450726f626162696c6974790004003c52756e74696d654e6f74466f756e6400050040496e73756666696369656e7446756e6400060044446f6d61696e4e616d65546f6f4c6f6e670007003442616c616e6365467265657a65000800804661696c6564546f47656e657261746547656e657369735374617465526f6f7400090038446f6d61696e4e6f74466f756e64000a00384e6f74446f6d61696e4f776e6572000b000035040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000c000039040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d4045300000400350301185665633c543e00003d040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e410400000408e0e4004504084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964e401244368616e6e656c49640001147374617465490401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365e401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365e401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e63654d0401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565410301444665654d6f64656c3c42616c616e63653e00004904084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f736564000200004d0404184f7074696f6e04045401e40108104e6f6e6500000010536f6d650400e4000001000051040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964e0011c436861696e49640001306473745f636861696e5f6964e0011c436861696e49640001286368616e6e656c5f6964e401244368616e6e656c49640001146e6f6e6365e401144e6f6e636500011c7061796c6f61645504016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e63654d0401344f7074696f6e3c4e6f6e63653e000055040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400590401405061796c6f61643c42616c616e63653e0000000059040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c04005d0401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400650401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e000100005d040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401610420526573706f6e736501bc01081c5265717565737404006104011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000061040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e04003d030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000065040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401690420526573706f6e7365016d0401081c5265717565737404006904011c5265717565737400000020526573706f6e736504006d040120526573706f6e73650001000069040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e745d030120456e64706f696e740001306473745f656e64706f696e745d030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f616400006d040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000710400000408e0f40075040000040ce0e4e40079040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f787d0401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e7365737d0401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00007d0400000281040081040000040ce0f459030085040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040089040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f727389040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200008d04084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572650301204c6f636174696f6e0001207265636569766572650301204c6f636174696f6e000091040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e95040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c65749904102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730161021043616c6c018902245369676e6174757265019d0414457874726101ad04000400340000009d04082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400a1040148656432353531393a3a5369676e61747572650000001c537232353531390400a1010148737232353531393a3a5369676e61747572650001001445636473610400a504014065636473613a3a5369676e617475726500020000a1040c1c73705f636f72651c65643235353139245369676e617475726500000400a50101205b75383b2036345d0000a5040c1c73705f636f7265146563647361245369676e617475726500000400a90401205b75383b2036355d0000a904000003410000000800ad0400000428b104b504b904bd04c104c904cd04d104d504d90400b10410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000b50410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000b90410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000bd0410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000c10410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400c504010c4572610000c504102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000c90410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040015010120543a3a4e6f6e63650000cd0410306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000d104086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400d8013042616c616e63654f663c543e0000d5040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000d9040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000dd04084073756273706163655f72756e74696d651c52756e74696d65000000003c1853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023009010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000110104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e7401001d010400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e7401001d010400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01210101541830426c6f636b576569676874733101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746841013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687449014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e4d01310320737562737061636520737562737061636500000000010000000000000038df6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be0100000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978610108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e016501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2444696455706461746501001d01040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0169010004344d696e696d756d506572696f642c20f401000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f7401006d012000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401006d0120000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007101040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100750148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501001d0104000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500007d01040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f7400006d010400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040594c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040580840400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e744865616465727301001d010400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000081010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000085010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e5843757272656e74426c6f636b417574686f72496e666f000091010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f7465727301009501040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f74657273000095010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100b101040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000c5010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58497353746f72616765416363657373456e61626c656401001d010400049420456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e58416c6c6f77417574686f72696e674279416e796f6e6501001d01040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009404000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01c9010178344c426c6f636b417574686f72696e6744656c61796d01200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c61796d01200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974790902400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473e501200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e0d024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65e501200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72610108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782901110202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405301502040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505190205010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a034040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473000001a4082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402001d02040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402002d02040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020039020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020051020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e015d0201a814484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017102053c5472616e73616374696f6e46656573013c5472616e73616374696f6e466565731068436f6c6c656374656453746f7261676546656573457363726f770100184000000000000000000000000000000000085d0120457363726f77206f662073746f7261676520666565732c206120706f7274696f6e206f662069742069732072656c656173656420746f2074686520626c6f636b20617574686f72206f6e20657665727920626c6f636bd420616e6420706f7274696f6e206f662073746f72616765206665657320676f6573206261636b20696e746f207468697320706f742e485472616e73616374696f6e427974654665650000180400083d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e73206361636865642076616c7565206f66a020605472616e73616374696f6e427974654665656020666f722063757272656e7420626c6f636b2e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765b42063616e206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000750204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616ea4206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b018504d696e5265706c69636174696f6e466163746f726101080100084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e7053746f7261676546656573457363726f77426c6f636b5265776172640902400100000000000000102700000000000008490120486f77206d7563682028726174696f29206f662073746f72616765206665657320657363726f772073686f756c6420626520676976656e20746f206661726d6572206561636820626c6f636b206173206120207265776172642e6453746f7261676546656573457363726f77426c6f636b54617809024001000000000000000a0000000000000008590120486f77206d7563682028726174696f29206f662073746f72616765206665657320636f6c6c656374656420696e206120626c6f636b2073686f756c642062652070757420696e746f2073746f726167652066656573d820657363726f772028776974682072656d61696e696e672069737375656420746f206661726d657220696d6d6564696174656c79292e30437265646974537570706c7918406ae4a7139cd833347a0307000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c656467656418400041a7d9c2f00200000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400080014000000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100790240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01007d020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001810201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e017d03081c446f6d61696e73011c446f6d61696e7384445375636365737366756c42756e646c657301010406c80501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e3c52756e74696d65526567697374727900010406108103040000605363686564756c656452756e74696d65557067726164657300010806060d01a903040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c0004000050446f6d61696e5374616b696e6753756d6d61727900010406c8ad03040000244f70657261746f7273000104062cc503040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406c8bd0304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e284e6f6d696e61746f72730001080606cd03d1030400044101204c697374206f6620616c6c2063757272656e742065706f63682773206e6f6d696e61746f727320616e642074686569722073686172657320756e646572206120676976656e206f70657261746f722c384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3c50656e64696e674465706f736974730001080606cd031804000cd0204465706f7369747320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c207468657365206465706f7369747320617265207374616b656420626567696e6e696e67206e6578742065706f63682e4850656e64696e675769746864726177616c730001080606cd03290304000cdc205769746864726177616c7320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c2074686573652077696c6c206265206d6f76656420746f2050656e64696e674e6f6d696e61746f72556e6c6f636b732e7850656e64696e674f70657261746f724465726567697374726174696f6e7300010406c8bd03040008c4204f70657261746f72732077686f2063686f736520746f20646572656769737465722066726f6d206120646f6d61696e2ee02053746f72656420686572652074656d706f726172696c7920756e74696c20646f6d61696e2065706f636820697320636f6d706c6574652e5850656e64696e674f70657261746f72556e6c6f636b730100bd0304000c0d012053746f7265732061206c697374206f66206f70657261746f72732077686f2061726520756e6c6f636b696e6720696e2074686520636f6d696e6720626c6f636b732ee820546865206f70657261746f722077696c6c2062652072656d6f766564207768656e20746865207761697420706572696f64206973206f76657284206f72207768656e20746865206f70657261746f7220697320736c61736865642e5c50656e64696e674e6f6d696e61746f72556e6c6f636b730001080606d503d903040008b020416c6c207468652070656e64696e6720756e6c6f636b7320666f7220746865206e6f6d696e61746f72732e91012057652075736520746869732073746f7261676520746f20666574636820616c6c207468652070656e64696e6720756e6c6f636b7320756e6465722061206f70657261746f7220706f6f6c206174207468652074696d65206f6620736c617368696e672e3850656e64696e67556e6c6f636b7300010406e103bd0304000841012041206c697374206f66206f70657261746f72732074686174206172652065697468657220756e7265676973746572696e67206f72206f6e65206d6f7265206f6620746865206e6f6d696e61746f72738c20617265207769746864726177696e6720736f6d65207374616b65642066756e64732e3850656e64696e67536c617368657300010406c8e50304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8f503040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606e103300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f6465730001040630f9030400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c81d0104000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406fd0330040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b486173680001080606e1033004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606010405040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c80d04040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c445072656665727265644f70657261746f7200010406002c0400085901204120707265666572726564204f70657261746f7220666f72206120676976656e204661726d65722c20656e61626c696e67206175746f6d61746963207374616b696e67206f6620626c6f636b20726577617264732e810120466f7220746865206175746f2d7374616b696e6720746f20737563636565642c20746865204661726d6572206d75737420616c736f2062652061204e6f6d696e61746f72206f662074686520707265666572726564204f70657261746f722e48446f6d61696e547852616e6765537461746500010406c81104040000018d0201c44448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810100001000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b65184000409452a30300000000000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e705374616b655769746864726177616c4c6f636b696e67506572696f64101000010000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e74206964011d040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967730c34456e61626c65446f6d61696e7301001d01040004c0205768657468657220746f2064697361626c65207468652063616c6c7320696e2070616c6c65742d646f6d61696e732e58456e61626c6542616c616e63655472616e736665727301001d01040004dc205768657468657220746f2064697361626c6520746865206e6f726d616c2062616c616e636573207472616e736665722063616c6c732e48436f6e6669726d6174696f6e44657074684b010010100000000000012d030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200390404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01310301d004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e013d040d244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406e0e480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060641044504040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000051040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040671041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406710418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104067504510404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104067504510404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300005104040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000079040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01390301dc000185043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e7366657273000108060671048d04040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e01610301f0000191043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e016d0301f800019504649904042848436865636b4e6f6e5a65726f53656e646572b104c040436865636b5370656356657273696f6eb5041038436865636b547856657273696f6eb9041030436865636b47656e65736973bd043038436865636b4d6f7274616c697479c1043028436865636b4e6f6e6365c904c02c436865636b576569676874cd04c0604368617267655472616e73616374696f6e5061796d656e74d104c048436865636b53746f72616765416363657373d504c03844697361626c6550616c6c657473d904c0dd04"} -{"specName":"subspace","specVersion":2,"blockNumber":157127,"blockHash":"0xf8bb930be3d99b303f0ae7b92e89a9bf8f28b53c74a591cac5d0799a9c651a80","metadata":"0x6d6574610ee104000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173650501011450686173650001146576656e7450010445000118746f70696373090101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000205375627370616365040078017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400d401706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e0018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400f4018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f0400fc016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465727c01345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657994013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e7c086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788001305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748401445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b8c01444c6173744172636869766564426c6f636b00000000800c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008801745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d0000880000033000000008008c086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739001544172636869766564426c6f636b50726f6772657373000090086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000940c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040098013c737232353531393a3a5075626c69630000980c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e740404540001105c53746f7261676546656573457363726f774368616e67650801186265666f726518013042616c616e63654f663c543e04d05374617465206f662073746f72616765206665657320657363726f77206265666f726520626c6f636b20657865637574696f6e2e0114616674657218013042616c616e63654f663c543e04cc5374617465206f662073746f72616765206665657320657363726f7720616674657220626c6f636b20657865637574696f6e2e00046c53746f72616765206665657320657363726f77206368616e67652e4453746f726167654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f66207468652073746f7261676520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e01043453746f7261676520666565732e44436f6d707574654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f662074686520636f6d7075746520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e020434436f6d7075746520666565732e285469707352657761726408010c77686f000130543a3a4163636f756e74496404505265636569766572206f6620746865207469702e0118616d6f756e7418013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e030414546970732e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501640108084f6b0400c0000000000c4572720400640000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e7404045400013c3042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f7249640008003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000900445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000b0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000c004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e000d0078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e4964000e00047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65d8015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d808306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64dc011c42616c616e63650000dc0000061800e00c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964e4011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e801244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964e4011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e801244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964e4011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e801244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964e4011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964e801244368616e6e656c496404284368616e6e656c20497301146e6f6e6365e801144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e6365000118726573756c74f0014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964e4011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964e801244368616e6e656c496404284368616e6e656c20497301146e6f6e6365e801144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473e40c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000e8083c7072696d69746976655f7479706573105532353600000400ec01205b7536343b20345d0000ec000003040000002c00f0084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f7200010000f40c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964e4011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964e4011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964e4011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964e4011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722ef800000408e8e800fc0c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e6765640401286f6c645f7375646f6572010101504f7074696f6e3c543a3a4163636f756e7449643e04ac546865206f6c64207375646f206b6579206966206f6e65207761732070726576696f75736c79207365742e010478546865207375646f206b657920686173206265656e20757064617465642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0204c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574010104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000050108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000090100000230000d01000002110100110100000408101000150108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e1901014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d651d01016473705f72756e74696d653a3a52756e74696d65537472696e670000190100000610001d0100000502002101000005000025010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73290101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b657973310101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29010000022d01002d01000004083434003101000002340035010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373390101845065724469737061746368436c6173733c57656967687473506572436c6173733e000039010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454013d01000c01186e6f726d616c3d0101045400012c6f7065726174696f6e616c3d010104540001246d616e6461746f72793d0101045400003d010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e736963410101384f7074696f6e3c5765696768743e0001246d61785f746f74616c410101384f7074696f6e3c5765696768743e0001207265736572766564410101384f7074696f6e3c5765696768743e0000410104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000045010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178490101545065724469737061746368436c6173733c7533323e000049010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400004d01082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005101082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d651d01013452756e74696d65537472696e67000124696d706c5f6e616d651d01013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735501011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800005501040c436f77040454015901000400590100000059010000025d01005d01000004086101100061010000030800000008006501000005040069010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c65746d010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7101084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000750104284e6f6e5a65726f55333200000400100000007901085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578747d01012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578747d01012c4f7074696f6e3c7536343e00007d0104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000081010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008501083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f7471010110536c6f7400012c706172656e745f736c6f7471010110536c6f7400008901000004149465018d0191017101008d010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006501010c753136000091010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009501000004189465018d019101710100009901042042547265654d617008044b0189010456019d01000400ad010000009d010000040800a10100a1010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400a5010148737232353531393a3a5369676e61747572650000a5010c1c73705f636f72651c73723235353139245369676e617475726500000400a90101205b75383b2036345d0000a901000003400000000800ad01000002b10100b1010000040889019d0100b501042042547265654d617008044b0110045601b901000400c101000000b9010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74bd0101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000bd0104184f7074696f6e0404540171010108104e6f6e6500000010536f6d65040071010000010000c101000002c50100c5010000040810b90100c901086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000cd010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c04045400011c4c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d1010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273d90101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964657d01012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964657d01012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465dd0101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e38656e61626c655f72657761726473040118686569676874d001644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0004047c536565205b6050616c6c65743a3a656e61626c655f72657761726473605d2e54656e61626c655f73746f726167655f61636365737300050498536565205b6050616c6c65743a3a656e61626c655f73746f726167655f616363657373605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000604ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed101084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d5010849640194001001206f6666656e6465729401084964000110736c6f7471010110536c6f7400013066697273745f686561646572d50101184865616465720001347365636f6e645f686561646572d50101184865616465720000d501102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572190101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000d9010000027c00dd01085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e1010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a101013c4661726d65725369676e61747572650000e101085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f7471010110536c6f74000120736f6c7574696f6ee50101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6505020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6505020124506f744f757470757400000000e501086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019434526577617264416464726573730100002801287075626c69635f6b65799401245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786501012c536563746f72496e646578000130686973746f72795f73697a65e901012c486973746f727953697a6500013070696563655f6f66667365748d01012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f10101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373f50101345265636f72645769746e6573730001146368756e6b910101185363616c61720001346368756e6b5f7769746e657373f90101304368756e6b5769746e65737300013870726f6f665f6f665f7370616365fd010120506f7350726f6f660000e9010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400ed0101284e6f6e5a65726f5536340000ed0104284e6f6e5a65726f553634000004002c000000f1010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008801705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000f5010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008801645b75383b205265636f72645769746e6573733a3a53495a455d0000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008801605b75383b204368756e6b5769746e6573733a3a53495a455d0000fd01086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400010201405b75383b2053656c663a3a53495a455d00000102000003a000000008000502086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d00000902000004082c2c000d0200000408e901e9010011020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e15020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720194000401206f6666656e6465729401204f6666656e6465720000190200000408a034001d020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012102045300000400290201185665633c543e000021020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964610101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e732502011c526561736f6e73000025020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000029020000022102002d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013102045300000400350201185665633c543e000031020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720161011c42616c616e6365011800080108696461010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000350200000231020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d020453000004004d0201185665633c543e00003d020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640141021c42616c616e63650118000801086964410201084964000118616d6f756e7418011c42616c616e636500004102084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040045020154446f6d61696e73486f6c644964656e746966696572000000004502082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e670400490201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e4964000100004902082873705f646f6d61696e73545374616b696e67486f6c644964656e74696669657200010c3850656e64696e674465706f73697404002c01284f70657261746f724964000000185374616b656404002c01284f70657261746f7249640001003450656e64696e67556e6c6f636b04002c01284f70657261746f724964000200004d020000023d020051020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015502045300000400590201185665633c543e000055020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e6365000059020000025502005d020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365610201504163636f756e7449644c6f6f6b75704f663c543e00011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374610201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c69766521010110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f6d0201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e61020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400650201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400690201205b75383b2032305d000400006502000006c00069020000031400000008006d02000002000071020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000079020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800007d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000081020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465786501010c75313600011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e71030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e85020000028902008902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400250101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d7004006d0101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400cd0101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e63657304005d0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400810201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304008d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e6669677304002d0301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400310301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400390301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400610301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f04006d0301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400008d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c04045400012c347375626d69745f62756e646c650401346f70617175655f62756e646c65910201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66c50201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d651d010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967110301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669671d030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964c80120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f72496400012077697468647261772903015857697468647261773c42616c616e63654f663c543e3e0009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973742103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000a04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9102082873705f646f6d61696e731842756e646c65142445787472696e736963019502184e756d62657201101048617368013030446f6d61696e48656164657201d5011c42616c616e63650118000801347365616c65645f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373c10201385665633c45787472696e7369633e00009502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e00009902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d5011c42616c616e63650118000801186865616465729d0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265bd0201444f70657261746f725369676e617475726500009d02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d5011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6ea102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074a902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000a102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000140124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373c901012852616e646f6d6e6573730001347672665f7369676e6174757265a50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f7249640000a502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801186f75747075740401245672664f757470757400011470726f6f66a901012056726650726f6f660000a902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573ad0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163650901013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000134746f74616c5f7265776172647318011c42616c616e63650000ad02000002b10200b102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65b502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000b502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400b9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000b902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000bd020c2873705f646f6d61696e730c617070245369676e617475726500000400a5010148737232353531393a3a5369676e61747572650000c102000002950200c5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d501012458496e76616c696453746174655472616e736974696f6e0400c90201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400d90201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400dd0201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400e10201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0003004c496e76616c6964546f74616c526577617264730400e50201d4496e76616c6964546f74616c5265776172647350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400e90201dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400050301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400090301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c657304000d0301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000c9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66cd02013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365d5020138457865637574696f6e50686173650000cd020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573d102014442547265655365743c5665633c75383e3e0000d1020420425472656553657404045401340004003101000000d5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66cd02013053746f7261676550726f6f660001386d69736d617463685f696e64657810010c7533320001003446696e616c697a65426c6f636b00020000d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66cd02013053746f7261676550726f6f660000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d50100100124646f6d61696e5f6964c80120446f6d61696e4964000110736c6f7471010110536c6f7400013066697273745f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000e1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680000e5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c6964546f74616c5265776172647350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66cd02013053746f7261676550726f6f660000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473ed0201585665633c56616c696442756e646c654469676573743e0000ed02000002f10200f1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f646967657374f5020139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000f502000002f90200f90200000408fd02010300fd0204184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000103082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66cd02013053746f7261676550726f6f6600000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964c80120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065b9020144496e76616c696442756e646c655479706500016465787472696e7369635f696e636c7573696f6e5f70726f6f66cd02013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f6621010110626f6f6c000011030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579150301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781903011c50657263656e74000015030c2873705f646f6d61696e730c617070185075626c69630000040098013c737232353531393a3a5075626c6963000019030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800001d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d651d010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747909020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374210301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00002103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304002503014c42547265655365743c4163636f756e7449643e0001000025030420425472656553657404045401000004006d0200000029030c3870616c6c65745f646f6d61696e731c7374616b696e67205769746864726177041c42616c616e6365011801080c416c6c00000010536f6d65040018011c42616c616e6365000100002d030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000108487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e7321010110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e736665727321010110626f6f6c000104b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65d8015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573350301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3503000002d80039030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964e4011c436861696e4964000118706172616d733d03018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367450301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367450301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c410301444665654d6f64656c3c42616c616e63653e000041030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000045030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964e4011c436861696e49640001306473745f636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e636500011470726f6f66490301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167590301404d657373616765576569676874546167000049030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f4d030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66510301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66cd02013053746f7261676550726f6f6600004d030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000510304184f7074696f6e0404540155030108104e6f6e6500000010536f6d650400550300000100005503000004084d03cd020059030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e745265717565737404005d030120456e64706f696e7400020040456e64706f696e74526573706f6e736504005d030120456e64706f696e74000300104e6f6e65000400005d030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000061030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e650301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6503084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964e4011c436861696e49640001286163636f756e745f6964690301384d756c74694163636f756e744964000069030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400690201205b75383b2032305d0001000c526177040034011c5665633c75383e000200006d030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577610201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7103084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400750301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400790301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000075030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200007903081c73705f636f726510566f6964000100007d030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e81030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d651d010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369738503012852617747656e6573697300011c76657273696f6e5101013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000085030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f708903013847656e6573697353746f726167650001406368696c6472656e5f64656661756c749d03019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00008903042042547265654d617008044b018d03045601910300040095030000008d030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000091030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e000095030000029903009903000004088d039103009d03042042547265654d617008044b018d030456018903000400a103000000a103000002a50300a503000004088d03890300a9030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369738503012852617747656e6573697300011c76657273696f6e5101013852756e74696d6556657273696f6e00011068617368300110486173680000ad030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273bd03015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000b103042042547265654d617008044b012c04560118000400b503000000b503000002b90300b903000004082c1800bd0304204254726565536574040454012c000400c103000000c1030000022c00c5030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f72081c42616c616e6365011814536861726501180024012c7369676e696e675f6b6579150301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e6365000130746f74616c5f7368617265731801145368617265000118737461747573c90301384f70657261746f725374617475730000c9030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f7253746174757300010c2852656769737465726564000000304465726567697374657265640001001c536c617368656400020000cd03000004082c0000d1030c3870616c6c65745f646f6d61696e731c7374616b696e67244e6f6d696e61746f720414536861726501180004011873686172657318011453686172650000d503000004082c1000d903000002dd0300dd030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63685850656e64696e674e6f6d696e61746f72556e6c6f636b082c4e6f6d696e61746f72496401001c42616c616e63650118000801306e6f6d696e61746f725f696400012c4e6f6d696e61746f72496400011c62616c616e636518011c42616c616e63650000e10300000408c81000e503042042547265654d617008044b012c045601e903000400ed03000000e9030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63686050656e64696e674f70657261746f72536c617368496e666f082c4e6f6d696e61746f72496401001c42616c616e6365011800040150756e6c6f636b696e675f6e6f6d696e61746f7273d90301c45665633c50656e64696e674e6f6d696e61746f72556e6c6f636b3c4e6f6d696e61746f7249642c2042616c616e63653e3e0000ed03000002f10300f103000004082ce90300f5030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001001406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669671d03015c446f6d61696e436f6e6669673c4163636f756e7449643e0000f9030c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074a902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473c103013c5665633c4f70657261746f7249643e0000fd030000040cc810300001040000040cc810100005040000020904000904082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800000d04083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000011040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765150401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400001504086073756273706163655f636f72655f7072696d69746976657310553235360000040019040148707269766174655f753235363a3a55323536000019040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400ec01205b7536343b20345d00001d040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604002104013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904002504015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400290401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f636804002d0401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904003104014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040035040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020074496e76616c6964546f74616c52657761726473467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009003c4d697373696e674f70657261746f72000a0050556e6578706563746564467261756450726f6f66000b007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000c000025040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e657369730008000029040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000170444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e63650003003442616c616e6365467265657a65000400504d696e696d756d4f70657261746f725374616b650005003c556e6b6e6f776e4f70657261746f72000600544d696e696d756d4e6f6d696e61746f725374616b650007003c42616c616e63654f766572666c6f770008004042616c616e6365556e646572666c6f77000900404e6f744f70657261746f724f776e6572000a00544f70657261746f724e6f7452656769737465726564000b0040556e6b6e6f776e4e6f6d696e61746f72000c00504578697374696e6746756c6c5769746864726177000d00504d697373696e674f70657261746f724f776e6572000e002c4d696e7442616c616e6365000f004c426c6f636b4e756d6265724f766572666c6f770010002852656d6f76654c6f636b001100285570646174654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f77001500745472794465706f7369745769746850656e64696e6757697468647261770016007454727957697468647261775769746850656e64696e674465706f73697400170078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001800484f70657261746f724e6f74416c6c6f77656400190064496e76616c69644f70657261746f725369676e696e674b6579001a00444d6178696d756d4e6f6d696e61746f7273001b00002d040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f7200011c7046696e616c697a655377697463684f70657261746f72446f6d61696e04002904013c5472616e736974696f6e4572726f720000007846696e616c697a654f70657261746f724465726567697374726174696f6e04002904013c5472616e736974696f6e4572726f7200010038556e6c6f636b4f70657261746f7204002904013c5472616e736974696f6e4572726f720002007846696e616c697a65446f6d61696e50656e64696e675472616e736665727304002904013c5472616e736974696f6e4572726f720003003c556e6c6f636b4e6f6d696e61746f7204002904013c5472616e736974696f6e4572726f72000400544f70657261746f725265776172645374616b696e6704002904013c5472616e736974696f6e4572726f7200050034536c6173684f70657261746f7204002904013c5472616e736974696f6e4572726f720006000031040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e496400030058496e76616c6964536c6f7450726f626162696c6974790004003c52756e74696d654e6f74466f756e6400050040496e73756666696369656e7446756e6400060044446f6d61696e4e616d65546f6f4c6f6e670007003442616c616e6365467265657a65000800804661696c6564546f47656e657261746547656e657369735374617465526f6f7400090038446f6d61696e4e6f74466f756e64000a00384e6f74446f6d61696e4f776e6572000b000035040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000c000039040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d8045300000400350301185665633c543e00003d040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e410400000408e4e8004504084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964e801244368616e6e656c49640001147374617465490401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365e801144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365e801144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e63654d0401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565410301444665654d6f64656c3c42616c616e63653e00004904084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f736564000200004d0404184f7074696f6e04045401e80108104e6f6e6500000010536f6d650400e8000001000051040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964e4011c436861696e49640001306473745f636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e636500011c7061796c6f61645504016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e63654d0401344f7074696f6e3c4e6f6e63653e000055040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400590401405061796c6f61643c42616c616e63653e0000000059040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c04005d0401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400650401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e000100005d040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401610420526573706f6e736501bc01081c5265717565737404006104011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000061040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e04003d030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000065040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401690420526573706f6e7365016d0401081c5265717565737404006904011c5265717565737400000020526573706f6e736504006d040120526573706f6e73650001000069040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e745d030120456e64706f696e740001306473745f656e64706f696e745d030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f616400006d040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000710400000408e4f80075040000040ce4e8e80079040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f787d0401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e7365737d0401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00007d0400000281040081040000040ce4f859030085040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040089040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f727389040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200008d04084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572650301204c6f636174696f6e0001207265636569766572650301204c6f636174696f6e000091040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e95040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c65749904102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730161021043616c6c018902245369676e6174757265019d0414457874726101ad04000400340000009d04082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400a1040148656432353531393a3a5369676e61747572650000001c537232353531390400a5010148737232353531393a3a5369676e61747572650001001445636473610400a504014065636473613a3a5369676e617475726500020000a1040c1c73705f636f72651c65643235353139245369676e617475726500000400a90101205b75383b2036345d0000a5040c1c73705f636f7265146563647361245369676e617475726500000400a90401205b75383b2036355d0000a904000003410000000800ad0400000428b104b504b904bd04c104c904cd04d104d504d90400b10410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000b50410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000b90410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000bd0410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000c10410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400c504010c4572610000c504102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000c90410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040019010120543a3a4e6f6e63650000cd0410306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000d104086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000d5040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000d9040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000dd04084073756273706163655f72756e74696d651c52756e74696d65000000003c1853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402300d010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000150104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010021010400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010021010400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000501040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01250101541830426c6f636b576569676874733501f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746845013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768744d014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e510161032073756273706163652073756273706163650000000002000000000000003cdf6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d020000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000001000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978650108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e016901002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2444696455706461746501002101040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f016d010004344d696e696d756d506572696f642c20f401000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f74010071012000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100710120000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007501040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100790148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e67650100210104000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008101040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f74000071010400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040594c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040580840400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e7448656164657273010021010400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000085010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000089010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e5843757272656e74426c6f636b417574686f72496e666f000095010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f7465727301009901040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f74657273000099010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100b501040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000c9010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58497353746f72616765416363657373456e61626c6564010021010400049420456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e58416c6c6f77417574686f72696e674279416e796f6e6501002101040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009404000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01cd010178344c426c6f636b417574686f72696e6744656c61797101200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c61797101200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974790902400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473e901200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e0d024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65e901200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72650108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782901110202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405301502040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505190209010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a034040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473000001a4082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402001d02040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402002d02040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020039020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020051020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e015d0201a814484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017102053c5472616e73616374696f6e46656573013c5472616e73616374696f6e466565731068436f6c6c656374656453746f7261676546656573457363726f770100184000000000000000000000000000000000085d0120457363726f77206f662073746f7261676520666565732c206120706f7274696f6e206f662069742069732072656c656173656420746f2074686520626c6f636b20617574686f72206f6e20657665727920626c6f636bd420616e6420706f7274696f6e206f662073746f72616765206665657320676f6573206261636b20696e746f207468697320706f742e485472616e73616374696f6e427974654665650000180400083d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e73206361636865642076616c7565206f66a020605472616e73616374696f6e427974654665656020666f722063757272656e7420626c6f636b2e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765b42063616e206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000750204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616ea4206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b018504d696e5265706c69636174696f6e466163746f726501080100084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e7053746f7261676546656573457363726f77426c6f636b5265776172640902400100000000000000102700000000000008490120486f77206d7563682028726174696f29206f662073746f72616765206665657320657363726f772073686f756c6420626520676976656e20746f206661726d6572206561636820626c6f636b206173206120207265776172642e6453746f7261676546656573457363726f77426c6f636b54617809024001000000000000000a0000000000000008590120486f77206d7563682028726174696f29206f662073746f72616765206665657320636f6c6c656374656420696e206120626c6f636b2073686f756c642062652070757420696e746f2073746f726167652066656573d820657363726f772028776974682072656d61696e696e672069737375656420746f206661726d657220696d6d6564696174656c79292e30437265646974537570706c7918407331529baa928d29101707000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000e53de8a8a70800000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400060039000000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100790240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01007d020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001810201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e017d03081c446f6d61696e73011c446f6d61696e7384445375636365737366756c42756e646c657301010406c80901040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406c80901040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e3c52756e74696d65526567697374727900010406108103040000605363686564756c656452756e74696d65557067726164657300010806061101a903040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c0004000050446f6d61696e5374616b696e6753756d6d61727900010406c8ad03040000244f70657261746f7273000104062cc503040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406c8bd0304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e284e6f6d696e61746f72730001080606cd03d1030400044101204c697374206f6620616c6c2063757272656e742065706f63682773206e6f6d696e61746f727320616e642074686569722073686172657320756e646572206120676976656e206f70657261746f722c384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3c50656e64696e674465706f736974730001080606cd031804000cd0204465706f7369747320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c207468657365206465706f7369747320617265207374616b656420626567696e6e696e67206e6578742065706f63682e4850656e64696e675769746864726177616c730001080606cd03290304000cdc205769746864726177616c7320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c2074686573652077696c6c206265206d6f76656420746f2050656e64696e674e6f6d696e61746f72556e6c6f636b732e7850656e64696e674f70657261746f724465726567697374726174696f6e7300010406c8bd03040008c4204f70657261746f72732077686f2063686f736520746f20646572656769737465722066726f6d206120646f6d61696e2ee02053746f72656420686572652074656d706f726172696c7920756e74696c20646f6d61696e2065706f636820697320636f6d706c6574652e5850656e64696e674f70657261746f72556e6c6f636b730100bd0304000c0d012053746f7265732061206c697374206f66206f70657261746f72732077686f2061726520756e6c6f636b696e6720696e2074686520636f6d696e6720626c6f636b732ee820546865206f70657261746f722077696c6c2062652072656d6f766564207768656e20746865207761697420706572696f64206973206f76657284206f72207768656e20746865206f70657261746f7220697320736c61736865642e5c50656e64696e674e6f6d696e61746f72556e6c6f636b730001080606d503d903040008b020416c6c207468652070656e64696e6720756e6c6f636b7320666f7220746865206e6f6d696e61746f72732e91012057652075736520746869732073746f7261676520746f20666574636820616c6c207468652070656e64696e6720756e6c6f636b7320756e6465722061206f70657261746f7220706f6f6c206174207468652074696d65206f6620736c617368696e672e3850656e64696e67556e6c6f636b7300010406e103bd0304000841012041206c697374206f66206f70657261746f72732074686174206172652065697468657220756e7265676973746572696e67206f72206f6e65206d6f7265206f6620746865206e6f6d696e61746f72738c20617265207769746864726177696e6720736f6d65207374616b65642066756e64732e3850656e64696e67536c617368657300010406c8e50304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8f503040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606e103300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f6465730001040630f9030400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c8210104000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406fd0330040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b486173680001080606e1033004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606010405040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c80d04040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c48446f6d61696e547852616e6765537461746500010406c81104040000018d0201c44448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810100001000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b65184000409452a30300000000000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e705374616b655769746864726177616c4c6f636b696e67506572696f64101000010000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e74206964011d040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967730c34456e61626c65446f6d61696e7301002101040004c0205768657468657220746f2064697361626c65207468652063616c6c7320696e2070616c6c65742d646f6d61696e732e58456e61626c6542616c616e63655472616e736665727301002101040004dc205768657468657220746f2064697361626c6520746865206e6f726d616c2062616c616e636573207472616e736665722063616c6c732e48436f6e6669726d6174696f6e44657074684b010010100000000000012d030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200390404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01310301d404444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e013d040d244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406e4e880000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060641044504040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000051040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040671041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406710418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104067504510404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104067504510404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300005104040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000079040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01390301e0000185043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e7366657273000108060671048d04040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e01610301f4000191043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e016d0301fc00019504649904042848436865636b4e6f6e5a65726f53656e646572b104c040436865636b5370656356657273696f6eb5041038436865636b547856657273696f6eb9041030436865636b47656e65736973bd043038436865636b4d6f7274616c697479c1043028436865636b4e6f6e6365c904c02c436865636b576569676874cd04c0604368617267655472616e73616374696f6e5061796d656e74d104c048436865636b53746f72616765416363657373d504c03844697361626c6550616c6c657473d904c0dd04"} -{"specName":"subspace","specVersion":3,"blockNumber":330716,"blockHash":"0x100e357a44c4cc05c1bfa70f17b26dbd88ad37581f33d9691fb32651e0949b52","metadata":"0x6d6574610ee904000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173650d01011450686173650001146576656e7450010445000118746f70696373110101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000205375627370616365040078017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400dc01706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e8018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400fc018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000501016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465727c01345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657994013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e7c086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788001305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748401445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b8c01444c6173744172636869766564426c6f636b00000000800c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008801745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d0000880000033000000008008c086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739001544172636869766564426c6f636b50726f6772657373000090086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000940c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040098013c737232353531393a3a5075626c69630000980c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e740404540001105c53746f7261676546656573457363726f774368616e67650801186265666f726518013042616c616e63654f663c543e04d05374617465206f662073746f72616765206665657320657363726f77206265666f726520626c6f636b20657865637574696f6e2e0114616674657218013042616c616e63654f663c543e04cc5374617465206f662073746f72616765206665657320657363726f7720616674657220626c6f636b20657865637574696f6e2e00046c53746f72616765206665657320657363726f77206368616e67652e4453746f726167654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f66207468652073746f7261676520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e01043453746f7261676520666565732e44436f6d707574654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f662074686520636f6d7075746520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e020434436f6d7075746520666565732e285469707352657761726408010c77686f000130543a3a4163636f756e74496404505265636569766572206f6620746865207469702e0118616d6f756e7418013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e030414546970732e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501640108084f6b0400c0000000000c4572720400640000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001443042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f7249640008003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000900445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000b0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000c0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000d004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e000e0078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e4964000f003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed401e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e001000047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400d80110536c6f7400020000d8084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000dc0c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e0015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e008306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e4011c42616c616e63650000e40000061800e80c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964ec011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f001244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f001144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000118726573756c74f8014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964ec011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f001244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f001144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473ec0c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000f0083c7072696d69746976655f7479706573105532353600000400f401205b7536343b20345d0000f4000003040000002c00f8084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f7200010000fc0c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964ec011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e010100000408f0f00005010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e6765640401286f6c645f7375646f6572090101504f7074696f6e3c543a3a4163636f756e7449643e04ac546865206f6c64207375646f206b6579206966206f6e65207761732070726576696f75736c79207365742e010478546865207375646f206b657920686173206265656e20757064617465642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0204c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574090104184f7074696f6e04045401000108104e6f6e6500000010536f6d6504000000000100000d0108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001101000002300015010000021901001901000004081010001d0108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2101014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652501016473705f72756e74696d653a3a52756e74696d65537472696e6700002101000006100025010000050200290100000500002d010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73310101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b657973390101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3101000002350100350100000408343400390100000234003d010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373410101845065724469737061746368436c6173733c57656967687473506572436c6173733e000041010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014501000c01186e6f726d616c450101045400012c6f7065726174696f6e616c45010104540001246d616e6461746f72794501010454000045010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e736963490101384f7074696f6e3c5765696768743e0001246d61785f746f74616c490101384f7074696f6e3c5765696768743e0001207265736572766564490101384f7074696f6e3c5765696768743e0000490104184f7074696f6e04045401240108104e6f6e6500000010536f6d6504002400000100004d010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178510101545065724469737061746368436c6173733c7533323e000051010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005501082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005901082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d652501013452756e74696d65537472696e67000124696d706c5f6e616d652501013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735d01011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800005d01040c436f77040454016101000400610100000061010000026501006501000004086901100069010000030800000008006d01000005040071010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657475010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e790104284e6f6e5a65726f55333200000400100000007d01085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748101012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748101012c4f7074696f6e3c7536343e0000810104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000085010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008901083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74d80110536c6f7400012c706172656e745f736c6f74d80110536c6f7400008d0100000414946d0191019501d80091010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006d01010c753136000095010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000990100000418946d0191019501d800009d01042042547265654d617008044b018d01045601a101000400b101000000a1010000040800a50100a5010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400a9010148737232353531393a3a5369676e61747572650000a9010c1c73705f636f72651c73723235353139245369676e617475726500000400ad0101205b75383b2036345d0000ad01000003400000000800b101000002b50100b501000004088d01a10100b901042042547265654d617008044b0110045601bd01000400c501000000bd010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c10101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c10104184f7074696f6e04045401d80108104e6f6e6500000010536f6d650400d80000010000c501000002c90100c9010000040810bd0100cd01086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d1010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c04045400011c4c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d5010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273dd0101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658101012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658101012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e10101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e38656e61626c655f72657761726473040118686569676874d001644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0004047c536565205b6050616c6c65743a3a656e61626c655f72657761726473605d2e54656e61626c655f73746f726167655f61636365737300050498536565205b6050616c6c65743a3a656e61626c655f73746f726167655f616363657373605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000604ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed501084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d9010849640194001001206f6666656e6465729401084964000110736c6f74d80110536c6f7400013066697273745f686561646572d90101184865616465720001347365636f6e645f686561646572d90101184865616465720000d901102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572210101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000dd010000027c00e101085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e5010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a501013c4661726d65725369676e61747572650000e501085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74d80110536c6f74000120736f6c7574696f6ee90101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6509020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6509020124506f744f757470757400000000e901086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019434526577617264416464726573730100002801287075626c69635f6b65799401245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786d01012c536563746f72496e646578000130686973746f72795f73697a65ed01012c486973746f727953697a6500013070696563655f6f66667365749101012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f50101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373f90101345265636f72645769746e6573730001146368756e6b950101185363616c61720001346368756e6b5f7769746e657373fd0101304368756e6b5769746e65737300013870726f6f665f6f665f737061636501020120506f7350726f6f660000ed010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f10101284e6f6e5a65726f5536340000f10104284e6f6e5a65726f553634000004002c000000f5010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008801705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008801645b75383b205265636f72645769746e6573733a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008801605b75383b204368756e6b5769746e6573733a3a53495a455d00000102086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400050201405b75383b2053656c663a3a53495a455d00000502000003a000000008000902086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d00000d02000004082c2c00110200000408ed01ed010015020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e19020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720194000401206f6666656e6465729401204f6666656e64657200001d0200000408a0340021020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540125020453000004002d0201185665633c543e000025020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964690101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e732902011c526561736f6e73000029020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200002d0200000225020031020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013502045300000400390201185665633c543e000035020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720169011c42616c616e6365011800080108696469010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000039020000023502003d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014102045300000400510201185665633c543e000041020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640145021c42616c616e63650118000801086964450201084964000118616d6f756e7418011c42616c616e636500004502084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040049020154446f6d61696e73486f6c644964656e746966696572000000004902082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e6704004d0201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e4964000100004d02082873705f646f6d61696e73545374616b696e67486f6c644964656e74696669657200010c3850656e64696e674465706f73697404002c01284f70657261746f724964000000185374616b656404002c01284f70657261746f7249640001003450656e64696e67556e6c6f636b04002c01284f70657261746f72496400020000510200000241020055020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540159020453000004005d0201185665633c543e000059020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e636500005d0200000259020061020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365650201504163636f756e7449644c6f6f6b75704f663c543e00011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374650201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c69766529010110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f710201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e40128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e65020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400690201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004006d0201205b75383b2032305d000400006902000006c0006d020000031400000008007102000002000075020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7902085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e636500007d020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008102086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000085020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465786d01010c75313600011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e75030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e89020000028d02008d02084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d04002d0101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400750101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d10101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400610201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400850201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400310301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400350301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e67657204003d0301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400650301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400710301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e0064000091020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000130347375626d69745f62756e646c650401346f70617175655f62756e646c65950201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66c90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6525010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967150301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e66696721030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964c80120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f72496400012077697468647261772d03015857697468647261773c42616c616e63654f663c543e3e0009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973742503017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000a04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964c80120446f6d61696e4964000b04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9502082873705f646f6d61696e731842756e646c65142445787472696e736963019902184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e63650118000801347365616c65645f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373c50201385665633c45787472696e7369633e00009902082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e00009d02082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e6365011800080118686561646572a10201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265c10201444f70657261746f725369676e61747572650000a102082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6ea502015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074ad02019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000a502082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000140124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373cd01012852616e646f6d6e6573730001347672665f7369676e6174757265a90201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f7249640000a902101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801186f75747075740401245672664f757470757400011470726f6f66ad01012056726650726f6f660000ad02082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573b10201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651101013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000134746f74616c5f7265776172647318011c42616c616e63650000b102000002b50200b502082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65b902015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000b902082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400bd020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000bd02082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000c1020c2873705f646f6d61696e730c617070245369676e617475726500000400a9010148737232353531393a3a5369676e61747572650000c502000002990200c9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d901012458496e76616c696453746174655472616e736974696f6e0400cd0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400dd0201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400e10201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400e50201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0003004c496e76616c6964546f74616c526577617264730400e90201d4496e76616c6964546f74616c5265776172647350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400ed0201dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400090301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b4861736804000d0301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400110301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000cd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66d102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365d9020138457865637574696f6e50686173650000d1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573d502014442547265655365743c5665633c75383e3e0000d5020420425472656553657404045401340004003901000000d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66d102013053746f7261676550726f6f660001386d69736d617463685f696e64657810010c7533320001003446696e616c697a65426c6f636b00020000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66d102013053746f7261676550726f6f660000e1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d90100100124646f6d61696e5f6964c80120446f6d61696e4964000110736c6f74d80110536c6f7400013066697273745f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000e5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c6964546f74616c5265776172647350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66d102013053746f7261676550726f6f660000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473f10201585665633c56616c696442756e646c654469676573743e0000f102000002f50200f5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f646967657374f9020139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000f902000002fd0200fd02000004080103050300010304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000503082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c75333200000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66d102013053746f7261676550726f6f66000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964c80120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065bd020144496e76616c696442756e646c655479706500016465787472696e7369635f696e636c7573696f6e5f70726f6f66d102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f6629010110626f6f6c000015030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579190301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781d03011c50657263656e74000019030c2873705f646f6d61696e730c617070185075626c69630000040098013c737232353531393a3a5075626c696300001d030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000021030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d6525010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c6974790d020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374250301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00002503082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304002903014c42547265655365743c4163636f756e7449643e00010000290304204254726565536574040454010000040071020000002d030c3870616c6c65745f646f6d61696e731c7374616b696e67205769746864726177041c42616c616e6365011801080c416c6c00000010536f6d65040018011c42616c616e63650001000031030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000108487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e7329010110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e736665727329010110626f6f6c000104b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e0015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573390301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3903000002e0003d030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964ec011c436861696e4964000118706172616d734103018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367490301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367490301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c450301444665654d6f64656c3c42616c616e63653e000045030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000049030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964ec011c436861696e49640001306473745f636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e636500011470726f6f664d0301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f7461675d0301404d65737361676557656967687454616700004d030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f51030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66550301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66d102013053746f7261676550726f6f66000051030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000550304184f7074696f6e0404540159030108104e6f6e6500000010536f6d650400590300000100005903000004085103d102005d030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040061030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040061030120456e64706f696e74000300104e6f6e650004000061030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000065030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e690301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6903084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964ec011c436861696e49640001286163636f756e745f69646d0301384d756c74694163636f756e74496400006d030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e744964323004006d0201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000071030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577650201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400790301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f696404007d0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000079030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200007d03081c73705f636f726510566f69640001000081030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e85030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6525010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369738903012852617747656e6573697300011c76657273696f6e5901013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000089030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f708d03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74a103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00008d03042042547265654d617008044b0191030456019503000400990300000091030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000095030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e000099030000029d03009d03000004089103950300a103042042547265654d617008044b0191030456018d03000400a503000000a503000002a90300a9030000040891038d0300ad030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369738903012852617747656e6573697300011c76657273696f6e5901013852756e74696d6556657273696f6e00011068617368300110486173680000b1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273b503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273c103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473b503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000b503042042547265654d617008044b012c04560118000400b903000000b903000002bd0300bd03000004082c1800c10304204254726565536574040454012c000400c503000000c5030000022c00c9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f72081c42616c616e6365011814536861726501180024012c7369676e696e675f6b6579190301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781d03011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e6365000130746f74616c5f7368617265731801145368617265000118737461747573cd0301384f70657261746f725374617475730000cd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f7253746174757300010c2852656769737465726564000000304465726567697374657265640001001c536c617368656400020000d103000004082c0000d5030c3870616c6c65745f646f6d61696e731c7374616b696e67244e6f6d696e61746f720414536861726501180004011873686172657318011453686172650000d903000004082c1000dd03000002e10300e1030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63685850656e64696e674e6f6d696e61746f72556e6c6f636b082c4e6f6d696e61746f72496401001c42616c616e63650118000801306e6f6d696e61746f725f696400012c4e6f6d696e61746f72496400011c62616c616e636518011c42616c616e63650000e50300000408c81000e903042042547265654d617008044b012c045601ed03000400f103000000ed030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63686050656e64696e674f70657261746f72536c617368496e666f082c4e6f6d696e61746f72496401001c42616c616e6365011800040150756e6c6f636b696e675f6e6f6d696e61746f7273dd0301c45665633c50656e64696e674e6f6d696e61746f72556e6c6f636b3c4e6f6d696e61746f7249642c2042616c616e63653e3e0000f103000002f50300f503000004082ced0300f9030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669672103015c446f6d61696e436f6e6669673c4163636f756e7449643e00014c646f6d61696e5f72756e74696d655f696e666ffd030144446f6d61696e52756e74696d65496e666f0000fd030c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e49640000000001040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074ad02010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473c503013c5665633c4f70657261746f7249643e000005040000040cc810300009040000040cc81010000d040000021104001104082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800001504083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273b503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000019040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e67651d0401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400001d04086073756273706163655f636f72655f7072696d69746976657310553235360000040021040148707269766174655f753235363a3a55323536000021040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f401205b7536343b20345d000025040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604002904013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904002d04015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400310401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400350401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904003904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504003d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020074496e76616c6964546f74616c52657761726473467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009003c4d697373696e674f70657261746f72000a0050556e6578706563746564467261756450726f6f66000b007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000c00002d040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e657369730008000031040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000170444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e63650003003442616c616e6365467265657a65000400504d696e696d756d4f70657261746f725374616b650005003c556e6b6e6f776e4f70657261746f72000600544d696e696d756d4e6f6d696e61746f725374616b650007003c42616c616e63654f766572666c6f770008004042616c616e6365556e646572666c6f77000900404e6f744f70657261746f724f776e6572000a00544f70657261746f724e6f7452656769737465726564000b0040556e6b6e6f776e4e6f6d696e61746f72000c00504578697374696e6746756c6c5769746864726177000d00504d697373696e674f70657261746f724f776e6572000e002c4d696e7442616c616e6365000f004c426c6f636b4e756d6265724f766572666c6f770010002852656d6f76654c6f636b001100285570646174654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f77001500745472794465706f7369745769746850656e64696e6757697468647261770016007454727957697468647261775769746850656e64696e674465706f73697400170078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001800484f70657261746f724e6f74416c6c6f77656400190064496e76616c69644f70657261746f725369676e696e674b6579001a00444d6178696d756d4e6f6d696e61746f7273001b000035040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f7200011c7046696e616c697a655377697463684f70657261746f72446f6d61696e04003104013c5472616e736974696f6e4572726f720000007846696e616c697a654f70657261746f724465726567697374726174696f6e04003104013c5472616e736974696f6e4572726f7200010038556e6c6f636b4f70657261746f7204003104013c5472616e736974696f6e4572726f720002007846696e616c697a65446f6d61696e50656e64696e675472616e736665727304003104013c5472616e736974696f6e4572726f720003003c556e6c6f636b4e6f6d696e61746f7204003104013c5472616e736974696f6e4572726f72000400544f70657261746f725265776172645374616b696e6704003104013c5472616e736974696f6e4572726f7200050034536c6173684f70657261746f7204003104013c5472616e736974696f6e4572726f720006000039040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013458496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c00003d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000c000041040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e0045300000400390301185665633c543e000045040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e490400000408ecf0004d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f001244368616e6e656c49640001147374617465510401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f001144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f001144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365550401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565450301444665654d6f64656c3c42616c616e63653e00005104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000550404184f7074696f6e04045401f00108104e6f6e6500000010536f6d650400f0000001000059040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964ec011c436861696e49640001306473745f636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e636500011c7061796c6f61645d04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365550401344f7074696f6e3c4e6f6e63653e00005d040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400610401405061796c6f61643c42616c616e63653e0000000061040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400650401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e7404006d0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000065040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401690420526573706f6e736501bc01081c5265717565737404006904011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000069040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040041030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f7365000100006d040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401710420526573706f6e736501750401081c5265717565737404007104011c5265717565737400000020526573706f6e7365040075040120526573706f6e73650001000071040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7461030120456e64706f696e740001306473745f656e64706f696e7461030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f6164000075040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000790400000408ec0101007d040000040cecf0f00081040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78850401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573850401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000850400000289040089040000040cec01015d03008d040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040091040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f727391040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200009504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572690301204c6f636174696f6e0001207265636569766572690301204c6f636174696f6e000099040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e9d040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c6574a104102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730165021043616c6c018d02245369676e617475726501a50414457874726101b50400040034000000a504082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400a9040148656432353531393a3a5369676e61747572650000001c537232353531390400a9010148737232353531393a3a5369676e61747572650001001445636473610400ad04014065636473613a3a5369676e617475726500020000a9040c1c73705f636f72651c65643235353139245369676e617475726500000400ad0101205b75383b2036345d0000ad040c1c73705f636f7265146563647361245369676e617475726500000400b10401205b75383b2036355d0000b104000003410000000800b50400000428b904bd04c104c504c904d104d504d904dd04e10400b90410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000bd0410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000c10410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000c50410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000c90410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400cd04010c4572610000cd04102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000d10410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040021010120543a3a4e6f6e63650000d50410306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000d904086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e4013042616c616e63654f663c543e0000dd040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000e1040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000e504084073756273706163655f72756e74696d651c52756e74696d65000000003c1853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023015010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d655570677261646500001d0104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010029010400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010029010400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000d01040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e012d0101541830426c6f636b576569676874733d01f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684d013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687455014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e590161032073756273706163652073756273706163650000000003000000000000003cdf6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d020000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000001000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669786d0108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017101002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2444696455706461746501002901040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0175010004344d696e696d756d506572696f642c20f401000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100d82000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100d820000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007901040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e67657301007d0148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e67650100290104000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008501040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000d80400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040594c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040580840400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e7448656164657273010029010400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000089010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f00008d010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e5843757272656e74426c6f636b417574686f72496e666f000099010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f7465727301009d01040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f7465727300009d010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100b901040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000cd010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58497353746f72616765416363657373456e61626c6564010029010400049420456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e58416c6c6f77417574686f72696e674279416e796f6e6501002901040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009404000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d1010178344c426c6f636b417574686f72696e6744656c6179d8200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179d8200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974790d02400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473ed01200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e11024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65ed01200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f726d0108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782901150202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405301902040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805051d0211010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a034040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473000001a4082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002102040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003102040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c647301010402003d020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020055020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01610201a814484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017502053c5472616e73616374696f6e46656573013c5472616e73616374696f6e466565731068436f6c6c656374656453746f7261676546656573457363726f770100184000000000000000000000000000000000085d0120457363726f77206f662073746f7261676520666565732c206120706f7274696f6e206f662069742069732072656c656173656420746f2074686520626c6f636b20617574686f72206f6e20657665727920626c6f636bd420616e6420706f7274696f6e206f662073746f72616765206665657320676f6573206261636b20696e746f207468697320706f742e485472616e73616374696f6e427974654665650000180400083d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e73206361636865642076616c7565206f66a020605472616e73616374696f6e427974654665656020666f722063757272656e7420626c6f636b2e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765b42063616e206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000790204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616ea4206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b018504d696e5265706c69636174696f6e466163746f726d01080100084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e7053746f7261676546656573457363726f77426c6f636b5265776172640d02400100000000000000102700000000000008490120486f77206d7563682028726174696f29206f662073746f72616765206665657320657363726f772073686f756c6420626520676976656e20746f206661726d6572206561636820626c6f636b206173206120207265776172642e6453746f7261676546656573457363726f77426c6f636b5461780d024001000000000000000a0000000000000008590120486f77206d7563682028726174696f29206f662073746f72616765206665657320636f6c6c656374656420696e206120626c6f636b2073686f756c642062652070757420696e746f2073746f726167652066656573d820657363726f772028776974682072656d61696e696e672069737375656420746f206661726d657220696d6d6564696174656c79292e30437265646974537570706c791840763c8a417bd966ac294007000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000b140d3f0730d00000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a65184000200ab001000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c69657201007d0240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e010081020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001850201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e018103081c446f6d61696e73011c446f6d61696e7388445375636365737366756c42756e646c657301010406c81101040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406c81101040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406108503040000605363686564756c656452756e74696d65557067726164657300010806061901ad03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c0004000050446f6d61696e5374616b696e6753756d6d61727900010406c8b103040000244f70657261746f7273000104062cc903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406c8c10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e284e6f6d696e61746f72730001080606d103d5030400044101204c697374206f6620616c6c2063757272656e742065706f63682773206e6f6d696e61746f727320616e642074686569722073686172657320756e646572206120676976656e206f70657261746f722c384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3c50656e64696e674465706f736974730001080606d1031804000cd0204465706f7369747320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c207468657365206465706f7369747320617265207374616b656420626567696e6e696e67206e6578742065706f63682e4850656e64696e675769746864726177616c730001080606d1032d0304000cdc205769746864726177616c7320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c2074686573652077696c6c206265206d6f76656420746f2050656e64696e674e6f6d696e61746f72556e6c6f636b732e7850656e64696e674f70657261746f724465726567697374726174696f6e7300010406c8c103040008c4204f70657261746f72732077686f2063686f736520746f20646572656769737465722066726f6d206120646f6d61696e2ee02053746f72656420686572652074656d706f726172696c7920756e74696c20646f6d61696e2065706f636820697320636f6d706c6574652e5850656e64696e674f70657261746f72556e6c6f636b730100c10304000c0d012053746f7265732061206c697374206f66206f70657261746f72732077686f2061726520756e6c6f636b696e6720696e2074686520636f6d696e6720626c6f636b732ee820546865206f70657261746f722077696c6c2062652072656d6f766564207768656e20746865207761697420706572696f64206973206f76657284206f72207768656e20746865206f70657261746f7220697320736c61736865642e5c50656e64696e674e6f6d696e61746f72556e6c6f636b730001080606d903dd03040008b020416c6c207468652070656e64696e6720756e6c6f636b7320666f7220746865206e6f6d696e61746f72732e91012057652075736520746869732073746f7261676520746f20666574636820616c6c207468652070656e64696e6720756e6c6f636b7320756e6465722061206f70657261746f7220706f6f6c206174207468652074696d65206f6620736c617368696e672e3850656e64696e67556e6c6f636b7300010406e503c10304000841012041206c697374206f66206f70657261746f72732074686174206172652065697468657220756e7265676973746572696e67206f72206f6e65206d6f7265206f6620746865206e6f6d696e61746f72738c20617265207769746864726177696e6720736f6d65207374616b65642066756e64732e3850656e64696e67536c617368657300010406c8e90304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8f903040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606e503300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063001040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c8290104000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406050430040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b486173680001080606e5033004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c06060609040d040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c81504040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c48446f6d61696e547852616e6765537461746500010406c8190404000001910201c44448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810100001000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e705374616b655769746864726177616c4c6f636b696e67506572696f64101000010000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069640125040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967730c34456e61626c65446f6d61696e7301002901040004c0205768657468657220746f2064697361626c65207468652063616c6c7320696e2070616c6c65742d646f6d61696e732e58456e61626c6542616c616e63655472616e736665727301002901040004dc205768657468657220746f2064697361626c6520746865206e6f726d616c2062616c616e636573207472616e736665722063616c6c732e48436f6e6669726d6174696f6e44657074684b0100101000000000000131030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200410404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01350301dc04444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0145040d244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406ecf080000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060649044d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000059040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040679041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406790418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104067d04590404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104067d04590404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300005904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000081040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e013d0301e800018d043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e7366657273000108060679049504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e01650301fc000199043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01710301050100019d0464a104042848436865636b4e6f6e5a65726f53656e646572b904c040436865636b5370656356657273696f6ebd041038436865636b547856657273696f6ec1041030436865636b47656e65736973c5043038436865636b4d6f7274616c697479c9043028436865636b4e6f6e6365d104c02c436865636b576569676874d504c0604368617267655472616e73616374696f6e5061796d656e74d904c048436865636b53746f72616765416363657373dd04c03844697361626c6550616c6c657473e104c0e504"} -{"specName":"subspace","specVersion":4,"blockNumber":359565,"blockHash":"0x46db8757beae85fc8b99c409b67bf2b324c81fae07c41033b8f9ac74149d1305","metadata":"0x6d6574610ee904000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173650d01011450686173650001146576656e7450010445000118746f70696373110101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000205375627370616365040078017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400dc01706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e8018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400fc018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000501016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465727c01345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657994013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e7c086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788001305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748401445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b8c01444c6173744172636869766564426c6f636b00000000800c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008801745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d0000880000033000000008008c086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739001544172636869766564426c6f636b50726f6772657373000090086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000940c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040098013c737232353531393a3a5075626c69630000980c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e740404540001105c53746f7261676546656573457363726f774368616e67650801186265666f726518013042616c616e63654f663c543e04d05374617465206f662073746f72616765206665657320657363726f77206265666f726520626c6f636b20657865637574696f6e2e0114616674657218013042616c616e63654f663c543e04cc5374617465206f662073746f72616765206665657320657363726f7720616674657220626c6f636b20657865637574696f6e2e00046c53746f72616765206665657320657363726f77206368616e67652e4453746f726167654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f66207468652073746f7261676520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e01043453746f7261676520666565732e44436f6d707574654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f662074686520636f6d7075746520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e020434436f6d7075746520666565732e285469707352657761726408010c77686f000130543a3a4163636f756e74496404505265636569766572206f6620746865207469702e0118616d6f756e7418013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e030414546970732e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501640108084f6b0400c0000000000c4572720400640000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001443042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f7249640008003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000900445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000b0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000c0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000d004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e000e0078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e4964000f003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed401e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e001000047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400d80110536c6f7400020000d8084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000dc0c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e0015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e008306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e4011c42616c616e63650000e40000061800e80c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964ec011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f001244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f001144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000118726573756c74f8014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964ec011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f001244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f001144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473ec0c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000f0083c7072696d69746976655f7479706573105532353600000400f401205b7536343b20345d0000f4000003040000002c00f8084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f7200010000fc0c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964ec011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e010100000408f0f00005010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e6765640401286f6c645f7375646f6572090101504f7074696f6e3c543a3a4163636f756e7449643e04ac546865206f6c64207375646f206b6579206966206f6e65207761732070726576696f75736c79207365742e010478546865207375646f206b657920686173206265656e20757064617465642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0204c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574090104184f7074696f6e04045401000108104e6f6e6500000010536f6d6504000000000100000d0108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001101000002300015010000021901001901000004081010001d0108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2101014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652501016473705f72756e74696d653a3a52756e74696d65537472696e6700002101000006100025010000050200290100000500002d010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73310101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b657973390101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3101000002350100350100000408343400390100000234003d010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373410101845065724469737061746368436c6173733c57656967687473506572436c6173733e000041010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014501000c01186e6f726d616c450101045400012c6f7065726174696f6e616c45010104540001246d616e6461746f72794501010454000045010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e736963490101384f7074696f6e3c5765696768743e0001246d61785f746f74616c490101384f7074696f6e3c5765696768743e0001207265736572766564490101384f7074696f6e3c5765696768743e0000490104184f7074696f6e04045401240108104e6f6e6500000010536f6d6504002400000100004d010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178510101545065724469737061746368436c6173733c7533323e000051010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005501082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005901082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d652501013452756e74696d65537472696e67000124696d706c5f6e616d652501013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735d01011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800005d01040c436f77040454016101000400610100000061010000026501006501000004086901100069010000030800000008006d01000005040071010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657475010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e790104284e6f6e5a65726f55333200000400100000007d01085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748101012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748101012c4f7074696f6e3c7536343e0000810104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000085010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008901083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74d80110536c6f7400012c706172656e745f736c6f74d80110536c6f7400008d0100000414946d0191019501d80091010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006d01010c753136000095010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000990100000418946d0191019501d800009d01042042547265654d617008044b018d01045601a101000400b101000000a1010000040800a50100a5010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400a9010148737232353531393a3a5369676e61747572650000a9010c1c73705f636f72651c73723235353139245369676e617475726500000400ad0101205b75383b2036345d0000ad01000003400000000800b101000002b50100b501000004088d01a10100b901042042547265654d617008044b0110045601bd01000400c501000000bd010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c10101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c10104184f7074696f6e04045401d80108104e6f6e6500000010536f6d650400d80000010000c501000002c90100c9010000040810bd0100cd01086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d1010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c04045400011c4c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d5010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273dd0101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658101012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658101012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e10101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e38656e61626c655f72657761726473040118686569676874d001644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0004047c536565205b6050616c6c65743a3a656e61626c655f72657761726473605d2e54656e61626c655f73746f726167655f61636365737300050498536565205b6050616c6c65743a3a656e61626c655f73746f726167655f616363657373605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000604ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed501084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d9010849640194001001206f6666656e6465729401084964000110736c6f74d80110536c6f7400013066697273745f686561646572d90101184865616465720001347365636f6e645f686561646572d90101184865616465720000d901102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572210101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000dd010000027c00e101085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e5010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a501013c4661726d65725369676e61747572650000e501085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74d80110536c6f74000120736f6c7574696f6ee90101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6509020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6509020124506f744f757470757400000000e901086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019434526577617264416464726573730100002801287075626c69635f6b65799401245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786d01012c536563746f72496e646578000130686973746f72795f73697a65ed01012c486973746f727953697a6500013070696563655f6f66667365749101012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f50101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373f90101345265636f72645769746e6573730001146368756e6b950101185363616c61720001346368756e6b5f7769746e657373fd0101304368756e6b5769746e65737300013870726f6f665f6f665f737061636501020120506f7350726f6f660000ed010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f10101284e6f6e5a65726f5536340000f10104284e6f6e5a65726f553634000004002c000000f5010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008801705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008801645b75383b205265636f72645769746e6573733a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008801605b75383b204368756e6b5769746e6573733a3a53495a455d00000102086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400050201405b75383b2053656c663a3a53495a455d00000502000003a000000008000902086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d00000d02000004082c2c00110200000408ed01ed010015020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e19020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720194000401206f6666656e6465729401204f6666656e64657200001d0200000408a0340021020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540125020453000004002d0201185665633c543e000025020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964690101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e732902011c526561736f6e73000029020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200002d0200000225020031020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013502045300000400390201185665633c543e000035020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720169011c42616c616e6365011800080108696469010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000039020000023502003d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014102045300000400510201185665633c543e000041020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640145021c42616c616e63650118000801086964450201084964000118616d6f756e7418011c42616c616e636500004502084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040049020154446f6d61696e73486f6c644964656e746966696572000000004902082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e6704004d0201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e4964000100004d02082873705f646f6d61696e73545374616b696e67486f6c644964656e74696669657200010c3850656e64696e674465706f73697404002c01284f70657261746f724964000000185374616b656404002c01284f70657261746f7249640001003450656e64696e67556e6c6f636b04002c01284f70657261746f72496400020000510200000241020055020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540159020453000004005d0201185665633c543e000059020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e636500005d0200000259020061020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365650201504163636f756e7449644c6f6f6b75704f663c543e00011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374650201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c69766529010110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f710201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e40128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e65020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400690201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004006d0201205b75383b2032305d000400006902000006c0006d020000031400000008007102000002000075020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7902085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e636500007d020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008102086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000085020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465786d01010c75313600011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e75030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e89020000028d02008d02084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d04002d0101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400750101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d10101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400610201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400850201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400310301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400350301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e67657204003d0301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400650301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400710301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e0064000091020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000130347375626d69745f62756e646c650401346f70617175655f62756e646c65950201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66c90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6525010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967150301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e66696721030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964c80120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f72496400012077697468647261772d03015857697468647261773c42616c616e63654f663c543e3e0009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973742503017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000a04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964c80120446f6d61696e4964000b04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9502082873705f646f6d61696e731842756e646c65142445787472696e736963019902184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e63650118000801347365616c65645f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373c50201385665633c45787472696e7369633e00009902082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e00009d02082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e6365011800080118686561646572a10201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265c10201444f70657261746f725369676e61747572650000a102082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6ea502015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074ad02019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000a502082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000140124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373cd01012852616e646f6d6e6573730001347672665f7369676e6174757265a90201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f7249640000a902101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801186f75747075740401245672664f757470757400011470726f6f66ad01012056726650726f6f660000ad02082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573b10201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651101013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000134746f74616c5f7265776172647318011c42616c616e63650000b102000002b50200b502082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65b902015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000b902082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400bd020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000bd02082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000c1020c2873705f646f6d61696e730c617070245369676e617475726500000400a9010148737232353531393a3a5369676e61747572650000c502000002990200c9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d901012458496e76616c696453746174655472616e736974696f6e0400cd0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400dd0201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400e10201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400e50201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0003004c496e76616c6964546f74616c526577617264730400e90201d4496e76616c6964546f74616c5265776172647350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400ed0201dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400090301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b4861736804000d0301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400110301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000cd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66d102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365d9020138457865637574696f6e50686173650000d1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573d502014442547265655365743c5665633c75383e3e0000d5020420425472656553657404045401340004003901000000d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66d102013053746f7261676550726f6f660001386d69736d617463685f696e64657810010c7533320001003446696e616c697a65426c6f636b00020000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66d102013053746f7261676550726f6f660000e1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d90100100124646f6d61696e5f6964c80120446f6d61696e4964000110736c6f74d80110536c6f7400013066697273745f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000e5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c6964546f74616c5265776172647350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66d102013053746f7261676550726f6f660000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473f10201585665633c56616c696442756e646c654469676573743e0000f102000002f50200f5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f646967657374f9020139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000f902000002fd0200fd02000004080103050300010304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000503082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c75333200000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66d102013053746f7261676550726f6f66000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964c80120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065bd020144496e76616c696442756e646c655479706500016465787472696e7369635f696e636c7573696f6e5f70726f6f66d102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f6629010110626f6f6c000015030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579190301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781d03011c50657263656e74000019030c2873705f646f6d61696e730c617070185075626c69630000040098013c737232353531393a3a5075626c696300001d030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000021030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d6525010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c6974790d020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374250301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00002503082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304002903014c42547265655365743c4163636f756e7449643e00010000290304204254726565536574040454010000040071020000002d030c3870616c6c65745f646f6d61696e731c7374616b696e67205769746864726177041c42616c616e6365011801080c416c6c00000010536f6d65040018011c42616c616e63650001000031030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000108487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e7329010110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e736665727329010110626f6f6c000104b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e0015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573390301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3903000002e0003d030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964ec011c436861696e4964000118706172616d734103018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367490301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367490301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c450301444665654d6f64656c3c42616c616e63653e000045030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000049030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964ec011c436861696e49640001306473745f636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e636500011470726f6f664d0301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f7461675d0301404d65737361676557656967687454616700004d030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f51030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66550301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66d102013053746f7261676550726f6f66000051030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000550304184f7074696f6e0404540159030108104e6f6e6500000010536f6d650400590300000100005903000004085103d102005d030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040061030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040061030120456e64706f696e74000300104e6f6e650004000061030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000065030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e690301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6903084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964ec011c436861696e49640001286163636f756e745f69646d0301384d756c74694163636f756e74496400006d030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e744964323004006d0201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000071030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577650201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400790301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f696404007d0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000079030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200007d03081c73705f636f726510566f69640001000081030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e85030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6525010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369738903012852617747656e6573697300011c76657273696f6e5901013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000089030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f708d03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74a103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00008d03042042547265654d617008044b0191030456019503000400990300000091030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000095030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e000099030000029d03009d03000004089103950300a103042042547265654d617008044b0191030456018d03000400a503000000a503000002a90300a9030000040891038d0300ad030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369738903012852617747656e6573697300011c76657273696f6e5901013852756e74696d6556657273696f6e00011068617368300110486173680000b10304204254726565536574040454012c000400b503000000b5030000022c00b9030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273bd03017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273b103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473bd03017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000bd03042042547265654d617008044b012c04560118000400c103000000c103000002c50300c503000004082c1800c9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f72081c42616c616e6365011814536861726501180024012c7369676e696e675f6b6579190301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781d03011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e6365000130746f74616c5f7368617265731801145368617265000118737461747573cd0301384f70657261746f725374617475730000cd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f7253746174757300010c2852656769737465726564000000304465726567697374657265640001001c536c617368656400020000d103000004082c0000d5030c3870616c6c65745f646f6d61696e731c7374616b696e67244e6f6d696e61746f720414536861726501180004011873686172657318011453686172650000d903000004082c1000dd03000002e10300e1030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63685850656e64696e674e6f6d696e61746f72556e6c6f636b082c4e6f6d696e61746f72496401001c42616c616e63650118000801306e6f6d696e61746f725f696400012c4e6f6d696e61746f72496400011c62616c616e636518011c42616c616e63650000e50300000408c81000e903042042547265654d617008044b012c045601ed03000400f103000000ed030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63686050656e64696e674f70657261746f72536c617368496e666f082c4e6f6d696e61746f72496401001c42616c616e6365011800040150756e6c6f636b696e675f6e6f6d696e61746f7273dd0301c45665633c50656e64696e674e6f6d696e61746f72556e6c6f636b3c4e6f6d696e61746f7249642c2042616c616e63653e3e0000f103000002f50300f503000004082ced0300f9030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669672103015c446f6d61696e436f6e6669673c4163636f756e7449643e00014c646f6d61696e5f72756e74696d655f696e666ffd030144446f6d61696e52756e74696d65496e666f0000fd030c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e49640000000001040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074ad02010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473b503013c5665633c4f70657261746f7249643e000005040000040cc810300009040000040cc81010000d040000021104001104082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800001504083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273bd03017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000019040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e67651d0401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400001d04086073756273706163655f636f72655f7072696d69746976657310553235360000040021040148707269766174655f753235363a3a55323536000021040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f401205b7536343b20345d000025040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604002904013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904002d04015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400310401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400350401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904003904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504003d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020074496e76616c6964546f74616c52657761726473467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009003c4d697373696e674f70657261746f72000a0050556e6578706563746564467261756450726f6f66000b007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000c00002d040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e657369730008000031040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000174444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e63650003003442616c616e6365467265657a65000400504d696e696d756d4f70657261746f725374616b650005003c556e6b6e6f776e4f70657261746f72000600544d696e696d756d4e6f6d696e61746f725374616b650007003c42616c616e63654f766572666c6f770008004042616c616e6365556e646572666c6f77000900404e6f744f70657261746f724f776e6572000a00544f70657261746f724e6f7452656769737465726564000b0040556e6b6e6f776e4e6f6d696e61746f72000c00504578697374696e6746756c6c5769746864726177000d00504d697373696e674f70657261746f724f776e6572000e002c4d696e7442616c616e6365000f004c426c6f636b4e756d6265724f766572666c6f770010002852656d6f76654c6f636b001100285570646174654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f77001500745472794465706f7369745769746850656e64696e6757697468647261770016007454727957697468647261775769746850656e64696e674465706f73697400170078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001800484f70657261746f724e6f74416c6c6f77656400190064496e76616c69644f70657261746f725369676e696e674b6579001a00444d6178696d756d4e6f6d696e61746f7273001b006c4475706c69636174654f70657261746f725369676e696e674b6579001c000035040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f7200011c7046696e616c697a655377697463684f70657261746f72446f6d61696e04003104013c5472616e736974696f6e4572726f720000007846696e616c697a654f70657261746f724465726567697374726174696f6e04003104013c5472616e736974696f6e4572726f7200010038556e6c6f636b4f70657261746f7204003104013c5472616e736974696f6e4572726f720002007846696e616c697a65446f6d61696e50656e64696e675472616e736665727304003104013c5472616e736974696f6e4572726f720003003c556e6c6f636b4e6f6d696e61746f7204003104013c5472616e736974696f6e4572726f72000400544f70657261746f725265776172645374616b696e6704003104013c5472616e736974696f6e4572726f7200050034536c6173684f70657261746f7204003104013c5472616e736974696f6e4572726f720006000039040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013458496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c00003d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000c000041040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e0045300000400390301185665633c543e000045040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e490400000408ecf0004d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f001244368616e6e656c49640001147374617465510401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f001144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f001144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365550401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565450301444665654d6f64656c3c42616c616e63653e00005104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000550404184f7074696f6e04045401f00108104e6f6e6500000010536f6d650400f0000001000059040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964ec011c436861696e49640001306473745f636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e636500011c7061796c6f61645d04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365550401344f7074696f6e3c4e6f6e63653e00005d040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400610401405061796c6f61643c42616c616e63653e0000000061040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400650401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e7404006d0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000065040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401690420526573706f6e736501bc01081c5265717565737404006904011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000069040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040041030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f7365000100006d040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401710420526573706f6e736501750401081c5265717565737404007104011c5265717565737400000020526573706f6e7365040075040120526573706f6e73650001000071040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7461030120456e64706f696e740001306473745f656e64706f696e7461030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f6164000075040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000790400000408ec0101007d040000040cecf0f00081040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78850401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573850401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000850400000289040089040000040cec01015d03008d040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040091040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f727391040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200009504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572690301204c6f636174696f6e0001207265636569766572690301204c6f636174696f6e000099040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e9d040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c6574a104102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730165021043616c6c018d02245369676e617475726501a50414457874726101b50400040034000000a504082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400a9040148656432353531393a3a5369676e61747572650000001c537232353531390400a9010148737232353531393a3a5369676e61747572650001001445636473610400ad04014065636473613a3a5369676e617475726500020000a9040c1c73705f636f72651c65643235353139245369676e617475726500000400ad0101205b75383b2036345d0000ad040c1c73705f636f7265146563647361245369676e617475726500000400b10401205b75383b2036355d0000b104000003410000000800b50400000428b904bd04c104c504c904d104d504d904dd04e10400b90410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000bd0410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000c10410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000c50410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000c90410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400cd04010c4572610000cd04102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000d10410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040021010120543a3a4e6f6e63650000d50410306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000d904086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e4013042616c616e63654f663c543e0000dd040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000e1040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000e504084073756273706163655f72756e74696d651c52756e74696d65000000003c1853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023015010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d655570677261646500001d0104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010029010400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010029010400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000d01040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e012d0101541830426c6f636b576569676874733d01f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684d013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687455014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e590161032073756273706163652073756273706163650000000004000000000000003cdf6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d020000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000001000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669786d0108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017101002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2444696455706461746501002901040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0175010004344d696e696d756d506572696f642c20f401000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100d82000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100d820000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007901040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e67657301007d0148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e67650100290104000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008501040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000d80400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040594c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040580840400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e7448656164657273010029010400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000089010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f00008d010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e5843757272656e74426c6f636b417574686f72496e666f000099010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f7465727301009d01040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f7465727300009d010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100b901040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000cd010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58497353746f72616765416363657373456e61626c6564010029010400049420456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e58416c6c6f77417574686f72696e674279416e796f6e6501002901040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009404000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d1010178344c426c6f636b417574686f72696e6744656c6179d8200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179d8200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974790d02400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473ed01200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e11024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65ed01200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f726d0108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782901150202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405301902040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805051d0211010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a034040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473000001a4082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002102040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003102040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c647301010402003d020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020055020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01610201a814484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017502053c5472616e73616374696f6e46656573013c5472616e73616374696f6e466565731068436f6c6c656374656453746f7261676546656573457363726f770100184000000000000000000000000000000000085d0120457363726f77206f662073746f7261676520666565732c206120706f7274696f6e206f662069742069732072656c656173656420746f2074686520626c6f636b20617574686f72206f6e20657665727920626c6f636bd420616e6420706f7274696f6e206f662073746f72616765206665657320676f6573206261636b20696e746f207468697320706f742e485472616e73616374696f6e427974654665650000180400083d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e73206361636865642076616c7565206f66a020605472616e73616374696f6e427974654665656020666f722063757272656e7420626c6f636b2e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765b42063616e206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000790204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616ea4206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b018504d696e5265706c69636174696f6e466163746f726d01080100084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e7053746f7261676546656573457363726f77426c6f636b5265776172640d02400100000000000000102700000000000008490120486f77206d7563682028726174696f29206f662073746f72616765206665657320657363726f772073686f756c6420626520676976656e20746f206661726d6572206561636820626c6f636b206173206120207265776172642e6453746f7261676546656573457363726f77426c6f636b5461780d024001000000000000000a0000000000000008590120486f77206d7563682028726174696f29206f662073746f72616765206665657320636f6c6c656374656420696e206120626c6f636b2073686f756c642062652070757420696e746f2073746f726167652066656573d820657363726f772028776974682072656d61696e696e672069737375656420746f206661726d657220696d6d6564696174656c79292e30437265646974537570706c79184007e49e1257a4dc2be34607000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c65646765641840001fad44b5bc0e00000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a65184000a00bf001000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c69657201007d0240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e010081020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001850201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e018103081c446f6d61696e73011c446f6d61696e738c445375636365737366756c42756e646c657301010406c81101040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406c81101040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406108503040000605363686564756c656452756e74696d65557067726164657300010806061901ad03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b6579000104061903b103040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406c8b903040000244f70657261746f7273000104062cc903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406c8b10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e284e6f6d696e61746f72730001080606d103d5030400044101204c697374206f6620616c6c2063757272656e742065706f63682773206e6f6d696e61746f727320616e642074686569722073686172657320756e646572206120676976656e206f70657261746f722c384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3c50656e64696e674465706f736974730001080606d1031804000cd0204465706f7369747320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c207468657365206465706f7369747320617265207374616b656420626567696e6e696e67206e6578742065706f63682e4850656e64696e675769746864726177616c730001080606d1032d0304000cdc205769746864726177616c7320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c2074686573652077696c6c206265206d6f76656420746f2050656e64696e674e6f6d696e61746f72556e6c6f636b732e7850656e64696e674f70657261746f724465726567697374726174696f6e7300010406c8b103040008c4204f70657261746f72732077686f2063686f736520746f20646572656769737465722066726f6d206120646f6d61696e2ee02053746f72656420686572652074656d706f726172696c7920756e74696c20646f6d61696e2065706f636820697320636f6d706c6574652e5850656e64696e674f70657261746f72556e6c6f636b730100b10304000c0d012053746f7265732061206c697374206f66206f70657261746f72732077686f2061726520756e6c6f636b696e6720696e2074686520636f6d696e6720626c6f636b732ee820546865206f70657261746f722077696c6c2062652072656d6f766564207768656e20746865207761697420706572696f64206973206f76657284206f72207768656e20746865206f70657261746f7220697320736c61736865642e5c50656e64696e674e6f6d696e61746f72556e6c6f636b730001080606d903dd03040008b020416c6c207468652070656e64696e6720756e6c6f636b7320666f7220746865206e6f6d696e61746f72732e91012057652075736520746869732073746f7261676520746f20666574636820616c6c207468652070656e64696e6720756e6c6f636b7320756e6465722061206f70657261746f7220706f6f6c206174207468652074696d65206f6620736c617368696e672e3850656e64696e67556e6c6f636b7300010406e503b10304000841012041206c697374206f66206f70657261746f72732074686174206172652065697468657220756e7265676973746572696e67206f72206f6e65206d6f7265206f6620746865206e6f6d696e61746f72738c20617265207769746864726177696e6720736f6d65207374616b65642066756e64732e3850656e64696e67536c617368657300010406c8e90304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8f903040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606e503300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063001040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c8290104000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406050430040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b486173680001080606e5033004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c06060609040d040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c81504040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c48446f6d61696e547852616e6765537461746500010406c8190404000001910201c44448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810100001000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e705374616b655769746864726177616c4c6f636b696e67506572696f64101000010000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069640125040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967730c34456e61626c65446f6d61696e7301002901040004c0205768657468657220746f2064697361626c65207468652063616c6c7320696e2070616c6c65742d646f6d61696e732e58456e61626c6542616c616e63655472616e736665727301002901040004dc205768657468657220746f2064697361626c6520746865206e6f726d616c2062616c616e636573207472616e736665722063616c6c732e48436f6e6669726d6174696f6e44657074684b0100101000000000000131030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200410404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01350301dc04444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0145040d244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406ecf080000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060649044d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000059040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040679041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406790418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104067d04590404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104067d04590404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300005904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000081040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e013d0301e800018d043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e7366657273000108060679049504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e01650301fc000199043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01710301050100019d0464a104042848436865636b4e6f6e5a65726f53656e646572b904c040436865636b5370656356657273696f6ebd041038436865636b547856657273696f6ec1041030436865636b47656e65736973c5043038436865636b4d6f7274616c697479c9043028436865636b4e6f6e6365d104c02c436865636b576569676874d504c0604368617267655472616e73616374696f6e5061796d656e74d904c048436865636b53746f72616765416363657373dd04c03844697361626c6550616c6c657473e104c0e504"} -{"specName":"subspace","specVersion":5,"blockNumber":536563,"blockHash":"0x9302e9bc5f4d54e6fc142fd5c01492acb57f9590e80d297f35f178fa5d9e09df","metadata":"0x6d6574610ee904000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173650d01011450686173650001146576656e7450010445000118746f70696373110101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000205375627370616365040078017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400dc01706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e8018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400fc018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000501016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465727c01345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657994013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e7c086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788001305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748401445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b8c01444c6173744172636869766564426c6f636b00000000800c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008801745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d0000880000033000000008008c086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739001544172636869766564426c6f636b50726f6772657373000090086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000940c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040098013c737232353531393a3a5075626c69630000980c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e740404540001105c53746f7261676546656573457363726f774368616e67650801186265666f726518013042616c616e63654f663c543e04d05374617465206f662073746f72616765206665657320657363726f77206265666f726520626c6f636b20657865637574696f6e2e0114616674657218013042616c616e63654f663c543e04cc5374617465206f662073746f72616765206665657320657363726f7720616674657220626c6f636b20657865637574696f6e2e00046c53746f72616765206665657320657363726f77206368616e67652e4453746f726167654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f66207468652073746f7261676520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e01043453746f7261676520666565732e44436f6d707574654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f662074686520636f6d7075746520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e020434436f6d7075746520666565732e285469707352657761726408010c77686f000130543a3a4163636f756e74496404505265636569766572206f6620746865207469702e0118616d6f756e7418013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e030414546970732e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501640108084f6b0400c0000000000c4572720400640000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001443042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f7249640008003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000900445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000b0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000c0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000d004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e000e0078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e4964000f003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed401e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e001000047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400d80110536c6f7400020000d8084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000dc0c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e0015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e008306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e4011c42616c616e63650000e40000061800e80c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964ec011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f001244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f001144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000118726573756c74f8014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964ec011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f001244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f001144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473ec0c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000f0083c7072696d69746976655f7479706573105532353600000400f401205b7536343b20345d0000f4000003040000002c00f8084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f7200010000fc0c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964ec011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e010100000408f0f00005010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e6765640401286f6c645f7375646f6572090101504f7074696f6e3c543a3a4163636f756e7449643e04ac546865206f6c64207375646f206b6579206966206f6e65207761732070726576696f75736c79207365742e010478546865207375646f206b657920686173206265656e20757064617465642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0204c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574090104184f7074696f6e04045401000108104e6f6e6500000010536f6d6504000000000100000d0108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001101000002300015010000021901001901000004081010001d0108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2101014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652501016473705f72756e74696d653a3a52756e74696d65537472696e6700002101000006100025010000050200290100000500002d010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73310101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b657973390101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3101000002350100350100000408343400390100000234003d010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373410101845065724469737061746368436c6173733c57656967687473506572436c6173733e000041010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014501000c01186e6f726d616c450101045400012c6f7065726174696f6e616c45010104540001246d616e6461746f72794501010454000045010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e736963490101384f7074696f6e3c5765696768743e0001246d61785f746f74616c490101384f7074696f6e3c5765696768743e0001207265736572766564490101384f7074696f6e3c5765696768743e0000490104184f7074696f6e04045401240108104e6f6e6500000010536f6d6504002400000100004d010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178510101545065724469737061746368436c6173733c7533323e000051010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005501082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005901082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d652501013452756e74696d65537472696e67000124696d706c5f6e616d652501013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735d01011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800005d01040c436f77040454016101000400610100000061010000026501006501000004086901100069010000030800000008006d01000005040071010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657475010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e790104284e6f6e5a65726f55333200000400100000007d01085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748101012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748101012c4f7074696f6e3c7536343e0000810104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000085010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008901083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74d80110536c6f7400012c706172656e745f736c6f74d80110536c6f7400008d0100000414946d0191019501d80091010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006d01010c753136000095010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000990100000418946d0191019501d800009d01042042547265654d617008044b018d01045601a101000400b101000000a1010000040800a50100a5010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400a9010148737232353531393a3a5369676e61747572650000a9010c1c73705f636f72651c73723235353139245369676e617475726500000400ad0101205b75383b2036345d0000ad01000003400000000800b101000002b50100b501000004088d01a10100b901042042547265654d617008044b0110045601bd01000400c501000000bd010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c10101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c10104184f7074696f6e04045401d80108104e6f6e6500000010536f6d650400d80000010000c501000002c90100c9010000040810bd0100cd01086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d1010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c04045400011c4c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d5010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273dd0101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658101012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658101012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e10101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e38656e61626c655f72657761726473040118686569676874d001644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0004047c536565205b6050616c6c65743a3a656e61626c655f72657761726473605d2e54656e61626c655f73746f726167655f61636365737300050498536565205b6050616c6c65743a3a656e61626c655f73746f726167655f616363657373605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000604ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed501084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d9010849640194001001206f6666656e6465729401084964000110736c6f74d80110536c6f7400013066697273745f686561646572d90101184865616465720001347365636f6e645f686561646572d90101184865616465720000d901102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572210101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000dd010000027c00e101085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e5010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a501013c4661726d65725369676e61747572650000e501085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74d80110536c6f74000120736f6c7574696f6ee90101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6509020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6509020124506f744f757470757400000000e901086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019434526577617264416464726573730100002801287075626c69635f6b65799401245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786d01012c536563746f72496e646578000130686973746f72795f73697a65ed01012c486973746f727953697a6500013070696563655f6f66667365749101012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f50101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373f90101345265636f72645769746e6573730001146368756e6b950101185363616c61720001346368756e6b5f7769746e657373fd0101304368756e6b5769746e65737300013870726f6f665f6f665f737061636501020120506f7350726f6f660000ed010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f10101284e6f6e5a65726f5536340000f10104284e6f6e5a65726f553634000004002c000000f5010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008801705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008801645b75383b205265636f72645769746e6573733a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008801605b75383b204368756e6b5769746e6573733a3a53495a455d00000102086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400050201405b75383b2053656c663a3a53495a455d00000502000003a000000008000902086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d00000d02000004082c2c00110200000408ed01ed010015020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e19020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720194000401206f6666656e6465729401204f6666656e64657200001d0200000408a0340021020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540125020453000004002d0201185665633c543e000025020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964690101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e732902011c526561736f6e73000029020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200002d0200000225020031020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013502045300000400390201185665633c543e000035020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720169011c42616c616e6365011800080108696469010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000039020000023502003d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014102045300000400510201185665633c543e000041020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640145021c42616c616e63650118000801086964450201084964000118616d6f756e7418011c42616c616e636500004502084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040049020154446f6d61696e73486f6c644964656e746966696572000000004902082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e6704004d0201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e4964000100004d02082873705f646f6d61696e73545374616b696e67486f6c644964656e74696669657200010c3850656e64696e674465706f73697404002c01284f70657261746f724964000000185374616b656404002c01284f70657261746f7249640001003450656e64696e67556e6c6f636b04002c01284f70657261746f72496400020000510200000241020055020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540159020453000004005d0201185665633c543e000059020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e636500005d0200000259020061020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365650201504163636f756e7449644c6f6f6b75704f663c543e00011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374650201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c69766529010110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f710201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e40128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e65020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400690201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004006d0201205b75383b2032305d000400006902000006c0006d020000031400000008007102000002000075020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7902085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e636500007d020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008102086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000085020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465786d01010c75313600011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e75030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e89020000028d02008d02084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d04002d0101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400750101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d10101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400610201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400850201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400310301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400350301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e67657204003d0301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400650301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400710301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e0064000091020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000130347375626d69745f62756e646c650401346f70617175655f62756e646c65950201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66c90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6525010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967150301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e66696721030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964c80120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f72496400012077697468647261772d03015857697468647261773c42616c616e63654f663c543e3e0009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973742503017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000a04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964c80120446f6d61696e4964000b04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9502082873705f646f6d61696e731842756e646c65142445787472696e736963019902184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e63650118000801347365616c65645f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373c50201385665633c45787472696e7369633e00009902082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e00009d02082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e6365011800080118686561646572a10201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265c10201444f70657261746f725369676e61747572650000a102082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6ea502015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074ad02019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000a502082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000140124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373cd01012852616e646f6d6e6573730001347672665f7369676e6174757265a90201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f7249640000a902101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801186f75747075740401245672664f757470757400011470726f6f66ad01012056726650726f6f660000ad02082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573b10201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651101013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000134746f74616c5f7265776172647318011c42616c616e63650000b102000002b50200b502082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65b902015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000b902082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400bd020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000bd02082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000c1020c2873705f646f6d61696e730c617070245369676e617475726500000400a9010148737232353531393a3a5369676e61747572650000c502000002990200c9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d901012458496e76616c696453746174655472616e736974696f6e0400cd0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400dd0201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400e10201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400e50201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0003004c496e76616c6964546f74616c526577617264730400e90201d4496e76616c6964546f74616c5265776172647350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400ed0201dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400090301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b4861736804000d0301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400110301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000cd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66d102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365d9020138457865637574696f6e50686173650000d1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573d502014442547265655365743c5665633c75383e3e0000d5020420425472656553657404045401340004003901000000d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66d102013053746f7261676550726f6f660001386d69736d617463685f696e64657810010c7533320001003446696e616c697a65426c6f636b00020000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66d102013053746f7261676550726f6f660000e1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d90100100124646f6d61696e5f6964c80120446f6d61696e4964000110736c6f74d80110536c6f7400013066697273745f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000e5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c6964546f74616c5265776172647350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66d102013053746f7261676550726f6f660000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473f10201585665633c56616c696442756e646c654469676573743e0000f102000002f50200f5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f646967657374f9020139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000f902000002fd0200fd02000004080103050300010304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000503082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c75333200000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66d102013053746f7261676550726f6f66000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964c80120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065bd020144496e76616c696442756e646c655479706500016465787472696e7369635f696e636c7573696f6e5f70726f6f66d102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f6629010110626f6f6c000015030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579190301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781d03011c50657263656e74000019030c2873705f646f6d61696e730c617070185075626c69630000040098013c737232353531393a3a5075626c696300001d030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000021030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d6525010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c6974790d020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374250301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00002503082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304002903014c42547265655365743c4163636f756e7449643e00010000290304204254726565536574040454010000040071020000002d030c3870616c6c65745f646f6d61696e731c7374616b696e67205769746864726177041c42616c616e6365011801080c416c6c00000010536f6d65040018011c42616c616e63650001000031030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000108487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e7329010110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e736665727329010110626f6f6c000104b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e0015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573390301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3903000002e0003d030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964ec011c436861696e4964000118706172616d734103018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367490301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367490301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c450301444665654d6f64656c3c42616c616e63653e000045030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000049030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964ec011c436861696e49640001306473745f636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e636500011470726f6f664d0301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f7461675d0301404d65737361676557656967687454616700004d030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f51030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66550301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66d102013053746f7261676550726f6f66000051030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000550304184f7074696f6e0404540159030108104e6f6e6500000010536f6d650400590300000100005903000004085103d102005d030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040061030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040061030120456e64706f696e74000300104e6f6e650004000061030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000065030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e690301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6903084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964ec011c436861696e49640001286163636f756e745f69646d0301384d756c74694163636f756e74496400006d030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e744964323004006d0201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000071030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577650201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400790301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f696404007d0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000079030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200007d03081c73705f636f726510566f69640001000081030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e85030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6525010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369738903012852617747656e6573697300011c76657273696f6e5901013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000089030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f708d03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74a103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00008d03042042547265654d617008044b0191030456019503000400990300000091030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000095030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e000099030000029d03009d03000004089103950300a103042042547265654d617008044b0191030456018d03000400a503000000a503000002a90300a9030000040891038d0300ad030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369738903012852617747656e6573697300011c76657273696f6e5901013852756e74696d6556657273696f6e00011068617368300110486173680000b1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273b503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273c103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473b503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000b503042042547265654d617008044b012c04560118000400b903000000b903000002bd0300bd03000004082c1800c10304204254726565536574040454012c000400c503000000c5030000022c00c9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f72081c42616c616e6365011814536861726501180024012c7369676e696e675f6b6579190301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781d03011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e6365000130746f74616c5f7368617265731801145368617265000118737461747573cd0301384f70657261746f725374617475730000cd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f7253746174757300010c2852656769737465726564000000304465726567697374657265640001001c536c617368656400020000d103000004082c0000d5030c3870616c6c65745f646f6d61696e731c7374616b696e67244e6f6d696e61746f720414536861726501180004011873686172657318011453686172650000d903000004082c1000dd03000002e10300e1030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63685850656e64696e674e6f6d696e61746f72556e6c6f636b082c4e6f6d696e61746f72496401001c42616c616e63650118000801306e6f6d696e61746f725f696400012c4e6f6d696e61746f72496400011c62616c616e636518011c42616c616e63650000e50300000408c81000e903042042547265654d617008044b012c045601ed03000400f103000000ed030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63686050656e64696e674f70657261746f72536c617368496e666f082c4e6f6d696e61746f72496401001c42616c616e6365011800040150756e6c6f636b696e675f6e6f6d696e61746f7273dd0301c45665633c50656e64696e674e6f6d696e61746f72556e6c6f636b3c4e6f6d696e61746f7249642c2042616c616e63653e3e0000f103000002f50300f503000004082ced0300f9030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669672103015c446f6d61696e436f6e6669673c4163636f756e7449643e00014c646f6d61696e5f72756e74696d655f696e666ffd030144446f6d61696e52756e74696d65496e666f0000fd030c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e49640000000001040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074ad02010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473c503013c5665633c4f70657261746f7249643e000005040000040cc810300009040000040cc81010000d040000021104001104082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800001504083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273b503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000019040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e67651d0401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400001d04086073756273706163655f636f72655f7072696d69746976657310553235360000040021040148707269766174655f753235363a3a55323536000021040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f401205b7536343b20345d000025040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604002904013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904002d04015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400310401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400350401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904003904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504003d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020074496e76616c6964546f74616c52657761726473467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009003c4d697373696e674f70657261746f72000a0050556e6578706563746564467261756450726f6f66000b007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000c00002d040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e657369730008000031040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000174444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e63650003003442616c616e6365467265657a65000400504d696e696d756d4f70657261746f725374616b650005003c556e6b6e6f776e4f70657261746f72000600544d696e696d756d4e6f6d696e61746f725374616b650007003c42616c616e63654f766572666c6f770008004042616c616e6365556e646572666c6f77000900404e6f744f70657261746f724f776e6572000a00544f70657261746f724e6f7452656769737465726564000b0040556e6b6e6f776e4e6f6d696e61746f72000c00504578697374696e6746756c6c5769746864726177000d00504d697373696e674f70657261746f724f776e6572000e002c4d696e7442616c616e6365000f004c426c6f636b4e756d6265724f766572666c6f770010002852656d6f76654c6f636b001100285570646174654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f77001500745472794465706f7369745769746850656e64696e6757697468647261770016007454727957697468647261775769746850656e64696e674465706f73697400170078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001800484f70657261746f724e6f74416c6c6f77656400190064496e76616c69644f70657261746f725369676e696e674b6579001a00444d6178696d756d4e6f6d696e61746f7273001b006c4475706c69636174654f70657261746f725369676e696e674b6579001c000035040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f7200011c7046696e616c697a655377697463684f70657261746f72446f6d61696e04003104013c5472616e736974696f6e4572726f720000007846696e616c697a654f70657261746f724465726567697374726174696f6e04003104013c5472616e736974696f6e4572726f7200010038556e6c6f636b4f70657261746f7204003104013c5472616e736974696f6e4572726f720002007846696e616c697a65446f6d61696e50656e64696e675472616e736665727304003104013c5472616e736974696f6e4572726f720003003c556e6c6f636b4e6f6d696e61746f7204003104013c5472616e736974696f6e4572726f72000400544f70657261746f725265776172645374616b696e6704003104013c5472616e736974696f6e4572726f7200050034536c6173684f70657261746f7204003104013c5472616e736974696f6e4572726f720006000039040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013458496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c00003d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000c000041040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e0045300000400390301185665633c543e000045040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e490400000408ecf0004d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f001244368616e6e656c49640001147374617465510401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f001144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f001144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365550401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565450301444665654d6f64656c3c42616c616e63653e00005104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000550404184f7074696f6e04045401f00108104e6f6e6500000010536f6d650400f0000001000059040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964ec011c436861696e49640001306473745f636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e636500011c7061796c6f61645d04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365550401344f7074696f6e3c4e6f6e63653e00005d040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400610401405061796c6f61643c42616c616e63653e0000000061040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400650401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e7404006d0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000065040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401690420526573706f6e736501bc01081c5265717565737404006904011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000069040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040041030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f7365000100006d040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401710420526573706f6e736501750401081c5265717565737404007104011c5265717565737400000020526573706f6e7365040075040120526573706f6e73650001000071040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7461030120456e64706f696e740001306473745f656e64706f696e7461030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f6164000075040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000790400000408ec0101007d040000040cecf0f00081040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78850401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573850401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000850400000289040089040000040cec01015d03008d040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040091040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f727391040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200009504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572690301204c6f636174696f6e0001207265636569766572690301204c6f636174696f6e000099040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e9d040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c6574a104102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730165021043616c6c018d02245369676e617475726501a50414457874726101b50400040034000000a504082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400a9040148656432353531393a3a5369676e61747572650000001c537232353531390400a9010148737232353531393a3a5369676e61747572650001001445636473610400ad04014065636473613a3a5369676e617475726500020000a9040c1c73705f636f72651c65643235353139245369676e617475726500000400ad0101205b75383b2036345d0000ad040c1c73705f636f7265146563647361245369676e617475726500000400b10401205b75383b2036355d0000b104000003410000000800b50400000428b904bd04c104c504c904d104d504d904dd04e10400b90410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000bd0410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000c10410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000c50410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000c90410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400cd04010c4572610000cd04102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000d10410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040021010120543a3a4e6f6e63650000d50410306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000d904086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e4013042616c616e63654f663c543e0000dd040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000e1040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000e504084073756273706163655f72756e74696d651c52756e74696d65000000003c1853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023015010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d655570677261646500001d0104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010029010400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010029010400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000d01040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e012d0101541830426c6f636b576569676874733d01f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684d013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687455014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e590161032073756273706163652073756273706163650000000005000000000000003cdf6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d020000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000001000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669786d0108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017101002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2444696455706461746501002901040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0175010004344d696e696d756d506572696f642c20f401000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100d82000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100d820000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007901040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e67657301007d0148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e67650100290104000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008501040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000d80400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040594c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040580840400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e7448656164657273010029010400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000089010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f00008d010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e5843757272656e74426c6f636b417574686f72496e666f000099010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f7465727301009d01040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f7465727300009d010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100b901040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000cd010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58497353746f72616765416363657373456e61626c6564010029010400049420456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e58416c6c6f77417574686f72696e674279416e796f6e6501002901040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009404000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d1010178344c426c6f636b417574686f72696e6744656c6179d8200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179d8200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974790d02400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473ed01200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e11024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65ed01200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f726d0108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782901150202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405301902040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805051d0211010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a034040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473000001a4082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002102040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003102040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c647301010402003d020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020055020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01610201a814484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017502053c5472616e73616374696f6e46656573013c5472616e73616374696f6e466565731068436f6c6c656374656453746f7261676546656573457363726f770100184000000000000000000000000000000000085d0120457363726f77206f662073746f7261676520666565732c206120706f7274696f6e206f662069742069732072656c656173656420746f2074686520626c6f636b20617574686f72206f6e20657665727920626c6f636bd420616e6420706f7274696f6e206f662073746f72616765206665657320676f6573206261636b20696e746f207468697320706f742e485472616e73616374696f6e427974654665650000180400083d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e73206361636865642076616c7565206f66a020605472616e73616374696f6e427974654665656020666f722063757272656e7420626c6f636b2e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765b42063616e206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000790204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616ea4206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b018504d696e5265706c69636174696f6e466163746f726d01080100084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e7053746f7261676546656573457363726f77426c6f636b5265776172640d02400100000000000000102700000000000008490120486f77206d7563682028726174696f29206f662073746f72616765206665657320657363726f772073686f756c6420626520676976656e20746f206661726d6572206561636820626c6f636b206173206120207265776172642e6453746f7261676546656573457363726f77426c6f636b5461780d024001000000000000000a0000000000000008590120486f77206d7563682028726174696f29206f662073746f72616765206665657320636f6c6c656374656420696e206120626c6f636b2073686f756c642062652070757420696e746f2073746f726167652066656573d820657363726f772028776974682072656d61696e696e672069737375656420746f206661726d657220696d6d6564696174656c79292e30437265646974537570706c791840a888583d4817f5f7337107000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000ab51eec9b81400000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a65184000e0135003000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c69657201007d0240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e010081020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001850201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e018103081c446f6d61696e73011c446f6d61696e738c445375636365737366756c42756e646c657301010406c81101040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406c81101040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406108503040000605363686564756c656452756e74696d65557067726164657300010806061901ad03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040619032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406c8b103040000244f70657261746f7273000104062cc903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406c8c10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e284e6f6d696e61746f72730001080606d103d5030400044101204c697374206f6620616c6c2063757272656e742065706f63682773206e6f6d696e61746f727320616e642074686569722073686172657320756e646572206120676976656e206f70657261746f722c384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3c50656e64696e674465706f736974730001080606d1031804000cd0204465706f7369747320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c207468657365206465706f7369747320617265207374616b656420626567696e6e696e67206e6578742065706f63682e4850656e64696e675769746864726177616c730001080606d1032d0304000cdc205769746864726177616c7320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c2074686573652077696c6c206265206d6f76656420746f2050656e64696e674e6f6d696e61746f72556e6c6f636b732e7850656e64696e674f70657261746f724465726567697374726174696f6e7300010406c8c103040008c4204f70657261746f72732077686f2063686f736520746f20646572656769737465722066726f6d206120646f6d61696e2ee02053746f72656420686572652074656d706f726172696c7920756e74696c20646f6d61696e2065706f636820697320636f6d706c6574652e5850656e64696e674f70657261746f72556e6c6f636b730100c10304000c0d012053746f7265732061206c697374206f66206f70657261746f72732077686f2061726520756e6c6f636b696e6720696e2074686520636f6d696e6720626c6f636b732ee820546865206f70657261746f722077696c6c2062652072656d6f766564207768656e20746865207761697420706572696f64206973206f76657284206f72207768656e20746865206f70657261746f7220697320736c61736865642e5c50656e64696e674e6f6d696e61746f72556e6c6f636b730001080606d903dd03040008b020416c6c207468652070656e64696e6720756e6c6f636b7320666f7220746865206e6f6d696e61746f72732e91012057652075736520746869732073746f7261676520746f20666574636820616c6c207468652070656e64696e6720756e6c6f636b7320756e6465722061206f70657261746f7220706f6f6c206174207468652074696d65206f6620736c617368696e672e3850656e64696e67556e6c6f636b7300010406e503c10304000841012041206c697374206f66206f70657261746f72732074686174206172652065697468657220756e7265676973746572696e67206f72206f6e65206d6f7265206f6620746865206e6f6d696e61746f72738c20617265207769746864726177696e6720736f6d65207374616b65642066756e64732e3850656e64696e67536c617368657300010406c8e90304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8f903040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606e503300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063001040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c8290104000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406050430040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b486173680001080606e5033004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c06060609040d040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c81504040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c48446f6d61696e547852616e6765537461746500010406c8190404000001910201c44448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810100001000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e705374616b655769746864726177616c4c6f636b696e67506572696f64101000010000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069640125040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967730c34456e61626c65446f6d61696e7301002901040004c0205768657468657220746f2064697361626c65207468652063616c6c7320696e2070616c6c65742d646f6d61696e732e58456e61626c6542616c616e63655472616e736665727301002901040004dc205768657468657220746f2064697361626c6520746865206e6f726d616c2062616c616e636573207472616e736665722063616c6c732e48436f6e6669726d6174696f6e44657074684b0100101000000000000131030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200410404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01350301dc04444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0145040d244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406ecf080000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060649044d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000059040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040679041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406790418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104067d04590404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104067d04590404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300005904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000081040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e013d0301e800018d043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e7366657273000108060679049504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e01650301fc000199043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01710301050100019d0464a104042848436865636b4e6f6e5a65726f53656e646572b904c040436865636b5370656356657273696f6ebd041038436865636b547856657273696f6ec1041030436865636b47656e65736973c5043038436865636b4d6f7274616c697479c9043028436865636b4e6f6e6365d104c02c436865636b576569676874d504c0604368617267655472616e73616374696f6e5061796d656e74d904c048436865636b53746f72616765416363657373dd04c03844697361626c6550616c6c657473e104c0e504"} diff --git a/indexers/rewards-squid/gemini3h.jsonl b/indexers/rewards-squid/gemini3h.jsonl deleted file mode 100644 index 282e131f6..000000000 --- a/indexers/rewards-squid/gemini3h.jsonl +++ /dev/null @@ -1,6 +0,0 @@ -{"specName":"subspace","specVersion":0,"blockNumber":0,"blockHash":"0x0c121c75f4ef450f40619e1fca9d1e8e7fbabc42c895bc4790801e85d5a91c34","metadata":"0x6d6574610e1505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e0104b046656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f722e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001503042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e001300047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f00c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e4964000100005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e89030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400450301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400490301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400510301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400790301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400850301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66d90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e6669672d0301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e66696739030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973743d03017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373d50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265d10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373d101012852616e646f6d6e6573730001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd020864646f6d61696e5f72756e74696d655f7072696d69746976657324426c6f636b46656573041c42616c616e6365011800080154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650000d1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000d502000002a50200d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012458496e76616c696453746174655472616e736974696f6e0400dd0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400f50201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400f90201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400fd0201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400010301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400050301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400210301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400250301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400290301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66e102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365e9020138457865637574696f6e50686173650000e1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573e502014442547265655365743c5665633c75383e3e0000e5020420425472656553657404045401340004003d01000000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66e102013053746f7261676550726f6f660001206d69736d61746368ed0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d61746368f102015446696e616c697a65426c6f636b4d69736d6174636800020000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f7274657200010000f1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c75333200010000f5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66e102013053746f7261676550726f6f660000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66e102013053746f7261676550726f6f66000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473090301585665633c56616c696442756e646c654469676573743e000009030000020d03000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737411030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000110300000215030015030000040819031d0300190304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100001d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000021030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000025030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66e102013053746f7261676550726f6f66000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461e102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00002d030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579310301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461783503011c50657263656e74000031030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000035030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000039030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c6973743d0301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00003d03082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304004103014c42547265655365743c4163636f756e7449643e000100004103042042547265655365740404540100000400790200000045030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65734d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d03000002e40051030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d735503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73675d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73675d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c590301444665654d6f64656c3c42616c616e63653e000059030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500005d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66610301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167710301404d657373616765576569676874546167000061030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f65030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66690301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66e102013053746f7261676550726f6f66000065030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000690304184f7074696f6e040454016d030108104e6f6e6500000010536f6d6504006d0300000100006d03000004086503e1020071030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040075030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040075030120456e64706f696e74000300104e6f6e650004000075030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000079030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e7d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964810301384d756c74694163636f756e744964000081030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000085030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8903084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d04008d0301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400910301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f6964000100008d030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009103081c73705f636f726510566f69640001000095030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e99030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369739d03012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d62657200009d030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70a103013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74b503019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000a103042042547265654d617008044b01a503045601a903000400ad03000000a5030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000a9030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000ad03000002b10300b10300000408a503a90300b503042042547265654d617008044b01a503045601a103000400b903000000b903000002bd0300bd0300000408a503a10300c1030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369739d03012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000c5030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273d503015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000c903042042547265654d617008044b012c04560118000400cd03000000cd03000002d10300d103000004082c1800d50304204254726565536574040454012c000400d903000000d9030000022c00dd030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110002c012c7369676e696e675f6b6579310301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461783503011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573e10301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f636818011453686172650000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400e50301ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c617368656400020000e5030c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f6368e903012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d6265720000e9030c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e6465780000ed03000004082ce90300f1030c3870616c6c65745f646f6d61696e731c7374616b696e67285368617265507269636500000400f503011c50657262696c6c0000f5030c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000f903000004082c0000fd030c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e0104014c4b6e6f776e4465706f7369743c53686172653e00011c70656e64696e670504017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000001040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740414536861726501180004011873686172657318011453686172650000050404184f7074696f6e0404540109040108104e6f6e6500000010536f6d6504000904000001000009040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000801586566666563746976655f646f6d61696e5f65706f6368e903012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500000d040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73110401c056656344657175653c28446f6d61696e49642c20446f6d61696e426c6f636b4e756d6265722c2042616c616e6365293e0001507769746864726177616c5f696e5f736861726573190401bc4f7074696f6e3c28446f6d61696e45706f63682c20446f6d61696e426c6f636b4e756d6265722c205368617265293e0000110400000215040015040000040ccc101800190404184f7074696f6e040454011d040108104e6f6e6500000010536f6d6504001d0400000100001d040000040ce90310180021040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669673903015c446f6d61696e436f6e6669673c4163636f756e7449643e00014c646f6d61696e5f72756e74696d655f696e666f25040144446f6d61696e52756e74696d65496e666f000025040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000290400000408cc10002d040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473d903013c5665633c4f70657261746f7249643e000031040000040ccc10300035040000040ccc10100039040000023d04003d04082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800004104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000045040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765490401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400004904086073756273706163655f636f72655f7072696d6974697665731055323536000004004d040148707269766174655f753235363a3a5532353600004d040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d000051040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604005504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904005904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704005d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400610401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904006504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040069040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e55040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009003c4d697373696e674f70657261746f72000a0050556e6578706563746564467261756450726f6f66000b007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000c000059040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e65736973000800005d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000180444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f000061040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04005d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704005d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704005d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204005d04013c5472616e736974696f6e4572726f720003000065040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013458496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c000069040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013c58496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e00006d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004004d0301185665633c543e000071040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750400000408f0f4007904084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c496400011473746174657d0401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365810401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565590301444665654d6f64656c3c42616c616e63653e00007d04084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000810404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f4000001000085040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f61648904016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365810401344f7074696f6e3c4e6f6e63653e000089040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e63650118010408563004008d0401405061796c6f61643c42616c616e63653e000000008d040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400910401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400990401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000091040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401950420526573706f6e736501c001081c5265717565737404009504011c5265717565737400000020526573706f6e73650400c00120526573706f6e73650001000095040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040055030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000099040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c52657175657374019d0420526573706f6e736501a10401081c5265717565737404009d04011c5265717565737400000020526573706f6e73650400a1040120526573706f6e7365000100009d040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7475030120456e64706f696e740001306473745f656e64706f696e7475030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000a1040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000a50400000408f0050100a9040000040cf0f4f400ad040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78b10401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573b10401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000b104000002b50400b5040000040cf00501710300b9040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400bd040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273bd040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000c104084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465727d0301204c6f636174696f6e00012072656365697665727d0301204c6f636174696f6e0000c5040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ec9040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ecd04102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501d10414457874726101e10400040034000000d104082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400d5040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e61747572650001001445636473610400d904014065636473613a3a5369676e617475726500020000d5040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d0000d9040c1c73705f636f7265146563647361245369676e617475726500000400dd04017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d0000dd04000003410000000800e10400000428e504e904ed04f104f504fd040105050509050d0500e50410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000e90410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000ed0410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f10410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000f50410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f904010c4572610000f904102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000fd0410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000010510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000009050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f72616765416363657373000000000d050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000001105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000000000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c79184000009ccb1bdfcb7da62e06000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c656467656418400077813e00000000000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400000000000000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019503081c446f6d61696e73011c446f6d61696e7380445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406109903040000605363686564756c656452756e74696d65557067726164657300010806061d01c103040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040631032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406ccc503040000244f70657261746f7273000104062cdd03040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccd50304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f6368536861726550726963650001080606ed03f103040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f736974730001080606f903fd03040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c730001080606f9030d04040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccd50304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc2104040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806062904300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f64657300010406302d040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e804c6174657374436f6e6669726d6564446f6d61696e426c6f636b4e756d62657201010406cc10100000000004c820546865206c617465737420636f6e6669726d656420626c6f636b206e756d626572206f66206561636820646f6d61696e2e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406310430040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b48617368000108060629043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606350439040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc4104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c48446f6d61696e547852616e6765537461746500010406cc4504040000019d0201c84848436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069640151040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000145030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c657301010402006d0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01490301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0171040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060675047904040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000085040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406a5041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406a50418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406a904850404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406a904850404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300008504040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000ad040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01510301ec0001b9043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e73666572730001080606a504c104040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e0179030101010001c5043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0185030109010001c90464cd04042848436865636b4e6f6e5a65726f53656e646572e504c440436865636b5370656356657273696f6ee9041038436865636b547856657273696f6eed041030436865636b47656e65736973f1043038436865636b4d6f7274616c697479f5043028436865636b4e6f6e6365fd04c42c436865636b5765696768740105c4604368617267655472616e73616374696f6e5061796d656e740505c448436865636b53746f726167654163636573730905c43844697361626c6550616c6c6574730d05c41105"} -{"specName":"subspace","specVersion":1,"blockNumber":308698,"blockHash":"0x718ea0067ec3512b2e73d9b738cc844f0cedf86837efb7b476e4b7ffeb186891","metadata":"0x6d6574610e3d05000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ea5030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400650301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400690301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400710301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400990301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400a10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66e90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967410301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669674d0301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973745103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373e50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265e10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d650d020124506f744f75747075740001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273d10201485472616e73666572733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd02082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000d102082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ed502016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574d502016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564d502016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564d502016842547265654d61703c436861696e49642c2042616c616e63653e0000d502042042547265654d617008044b01f004560118000400d902000000d902000002dd0200dd0200000408f01800e1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000e502000002a50200e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012858496e76616c696453746174655472616e736974696f6e0400ed0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400050301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400090301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e04000d0301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400110301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400150301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400310301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400350301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400390301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e736665727304003d0301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00090000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66f102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365f9020138457865637574696f6e50686173650000f1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573f502014442547265655365743c5665633c75383e3e0000f5020420425472656553657404045401340004003d01000000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66f102013053746f7261676550726f6f660001206d69736d61746368fd0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463680103015446696e616c697a65426c6f636b4d69736d6174636800020000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c7533320001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473190301585665633c56616c696442756e646c654469676573743e000019030000021d03001d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737421030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000210300000225030025030000040829032d0300290304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100002d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66f102013053746f7261676550726f6f66000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461f102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000041030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e74000045030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000049030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800004d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374510301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573590301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00005103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304005503014c42547265655365743c4163636f756e7449643e000100005503042042547265655365740404540100000400790200000059030000025d03005d03000004086103180061030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000065030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65736d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03000002e40071030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d737503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c790301444665654d6f64656c3c42616c616e63653e000079030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500007d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66810301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167910301404d657373616765576569676874546167000081030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f85030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66890301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66f102013053746f7261676550726f6f66000085030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000890304184f7074696f6e040454018d030108104e6f6e6500000010536f6d6504008d0300000100008d03000004088503f1020091030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040095030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040095030120456e64706f696e74000300104e6f6e650004000095030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000099030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e9d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964610301384d756c74694163636f756e7449640000a1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400a90301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400ad0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000a9030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000ad03081c73705f636f726510566f696400010000b1030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb5030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000b9030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70bd03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74d103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000bd03042042547265654d617008044b01c103045601c503000400c903000000c1030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000c5030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000c903000002cd0300cd0300000408c103c50300d103042042547265654d617008044b01c103045601bd03000400d503000000d503000002d90300d90300000408c103bd0300dd030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273f103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000e503042042547265654d617008044b012c04560118000400e903000000e903000002ed0300ed03000004082c1800f10304204254726565536574040454012c000400f503000000f5030000022c00f9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573fd0301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e63650000fd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400010401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002000001040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000005040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800000904000004082c0504000d040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004001104011c50657262696c6c000011040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200001504000004082c000019040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e1d0401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e672104017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e00001d040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000210404184f7074696f6e0404540125040108104e6f6e6500000010536f6d6504002504000001000025040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63680504012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000029040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c732d0401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573350401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e00002d0400000231040031040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000350404184f7074696f6e0404540139040108104e6f6e6500000010536f6d6504003904000001000039040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e636500003d040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669674d030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f41040144446f6d61696e52756e74696d65496e666f000041040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000450400000408cc100049040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473f503013c5665633c4f70657261746f7249643e00004d040000040ccc10100051040000025504005504082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200005904083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500005d04082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e48617368000061040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765650401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400006504086073756273706163655f636f72655f7072696d69746976657310553235360000040069040148707269766174655f753235363a3a55323536000069040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d00006d0408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d000071040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f6604007504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904007904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704007d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400850401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904008904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504008d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404008104015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d000079040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e74496454797065000900007d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000184444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e6404008104016862756e646c655f73746f726167655f66756e643a3a4572726f720020000081040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000085040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04007d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704007d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704007d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204007d04013c5472616e736974696f6e4572726f720003000089040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200014c58496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304007904017863726174653a3a72756e74696d655f72656769737472793a3a4572726f72001200008d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014858496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e73666572730011000091040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004006d0301185665633c543e000095040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990400000408f0f4009d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c49640001147374617465a10401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565790301444665654d6f64656c3c42616c616e63653e0000a104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000a50404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000a9040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164ad04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0000ad040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400b10401405061796c6f61643c42616c616e63653e00000000b1040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400b50401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400bd0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000b5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401b90420526573706f6e736501c001081c526571756573740400b904011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000b9040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040075030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000bd040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401c10420526573706f6e736501c50401081c526571756573740400c104011c5265717565737400000020526573706f6e73650400c5040120526573706f6e736500010000c1040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7495030120456e64706f696e740001306473745f656e64706f696e7495030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000c5040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000c90400000408f0050100cd040000040cf0f4f400d1040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000d504000002d90400d9040000040cf00501910300dd040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400e1040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273e1040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000e504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465729d0301204c6f636174696f6e00012072656365697665729d0301204c6f636174696f6e0000e90400000408f0f000ed040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ef1040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ef504102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501f90414457874726101090500040034000000f904082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400fd040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e617475726500010014456364736104000105014065636473613a3a5369676e617475726500020000fd040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d000001050c1c73705f636f7265146563647361245369676e6174757265000004000505017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d000005050000034100000008000905000004280d051105150519051d05250529052d0531053505000d0510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000110510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000150510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000190510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000001d0510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002105010c45726100002105102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000250510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000290510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000002d05086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000031050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f726167654163636573730000000035050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000003905084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000010000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918402f10afc7a09d4559ce4706000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c65646765641840003c62c064f54600000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a651840000048000c000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01b103081c446f6d61696e73011c446f6d61696e737c445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610b503040000605363686564756c656452756e74696d65557067726164657300010806061d01dd03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040645032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cce103040000244f70657261746f7273000104062cf903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccf10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060609040d04040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060615041904040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060615042904040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccf10304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc3d04040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806064504300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063049040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b48617368000108060645043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c0606064d0451040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc5904040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc5d04040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e48446f6d61696e547852616e6765537461746500010406cc6104040000019d0201c84c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c657449646d0420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e0171040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000165030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200910404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01690301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0195040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060699049d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000a9040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406c9041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406c90418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406cd04a90404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406cd04a90404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000a904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000d1040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01710301ec0001dd043c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e73666572730001080606c904e504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100d102100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e73666572730101080606e9041840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606e90418400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e0199030101010001ed043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01a1030109010001f10464f504042848436865636b4e6f6e5a65726f53656e6465720d05c440436865636b5370656356657273696f6e11051038436865636b547856657273696f6e15051030436865636b47656e6573697319053038436865636b4d6f7274616c6974791d053028436865636b4e6f6e63652505c42c436865636b5765696768742905c4604368617267655472616e73616374696f6e5061796d656e742d05c448436865636b53746f726167654163636573733105c43844697361626c6550616c6c6574733505c43905"} -{"specName":"subspace","specVersion":2,"blockNumber":341637,"blockHash":"0x5e5d61fed37bcabc9f49b42c85affdca840f350ac5d28dc5c6a4a487915e9b14","metadata":"0x6d6574610e3d05000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ea5030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400650301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400690301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400710301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400990301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400a10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66e90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967410301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669674d0301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973745103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373e50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265e10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d650d020124506f744f75747075740001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273d10201485472616e73666572733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd02082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000d102082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ed502016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574d502016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564d502016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564d502016842547265654d61703c436861696e49642c2042616c616e63653e0000d502042042547265654d617008044b01f004560118000400d902000000d902000002dd0200dd0200000408f01800e1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000e502000002a50200e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012858496e76616c696453746174655472616e736974696f6e0400ed0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400050301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400090301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e04000d0301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400110301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400150301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400310301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400350301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400390301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e736665727304003d0301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00090000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66f102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365f9020138457865637574696f6e50686173650000f1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573f502014442547265655365743c5665633c75383e3e0000f5020420425472656553657404045401340004003d01000000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66f102013053746f7261676550726f6f660001206d69736d61746368fd0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463680103015446696e616c697a65426c6f636b4d69736d6174636800020000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c7533320001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473190301585665633c56616c696442756e646c654469676573743e000019030000021d03001d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737421030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000210300000225030025030000040829032d0300290304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100002d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66f102013053746f7261676550726f6f66000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461f102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000041030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e74000045030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000049030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800004d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374510301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573590301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00005103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304005503014c42547265655365743c4163636f756e7449643e000100005503042042547265655365740404540100000400790200000059030000025d03005d03000004086103180061030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000065030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65736d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03000002e40071030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d737503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c790301444665654d6f64656c3c42616c616e63653e000079030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500007d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66810301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167910301404d657373616765576569676874546167000081030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f85030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66890301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66f102013053746f7261676550726f6f66000085030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000890304184f7074696f6e040454018d030108104e6f6e6500000010536f6d6504008d0300000100008d03000004088503f1020091030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040095030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040095030120456e64706f696e74000300104e6f6e650004000095030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000099030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e9d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964610301384d756c74694163636f756e7449640000a1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400a90301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400ad0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000a9030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000ad03081c73705f636f726510566f696400010000b1030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb5030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000b9030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70bd03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74d103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000bd03042042547265654d617008044b01c103045601c503000400c903000000c1030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000c5030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000c903000002cd0300cd0300000408c103c50300d103042042547265654d617008044b01c103045601bd03000400d503000000d503000002d90300d90300000408c103bd0300dd030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273f103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000e503042042547265654d617008044b012c04560118000400e903000000e903000002ed0300ed03000004082c1800f10304204254726565536574040454012c000400f503000000f5030000022c00f9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573fd0301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e63650000fd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400010401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002000001040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000005040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800000904000004082c0504000d040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004001104011c50657262696c6c000011040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200001504000004082c000019040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e1d0401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e672104017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e00001d040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000210404184f7074696f6e0404540125040108104e6f6e6500000010536f6d6504002504000001000025040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63680504012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000029040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c732d0401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573350401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e00002d0400000231040031040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000350404184f7074696f6e0404540139040108104e6f6e6500000010536f6d6504003904000001000039040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e636500003d040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669674d030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f41040144446f6d61696e52756e74696d65496e666f000041040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000450400000408cc100049040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473f503013c5665633c4f70657261746f7249643e00004d040000040ccc10100051040000025504005504082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200005904083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500005d04082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e48617368000061040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765650401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400006504086073756273706163655f636f72655f7072696d69746976657310553235360000040069040148707269766174655f753235363a3a55323536000069040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d00006d0408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d000071040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f6604007504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904007904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704007d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400850401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904008904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504008d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404008104015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d000079040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e74496454797065000900007d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000184444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e6404008104016862756e646c655f73746f726167655f66756e643a3a4572726f720020000081040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000085040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04007d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704007d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704007d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204007d04013c5472616e736974696f6e4572726f720003000089040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200014c58496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304007904017863726174653a3a72756e74696d655f72656769737472793a3a4572726f72001200008d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014858496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e73666572730011000091040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004006d0301185665633c543e000095040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990400000408f0f4009d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c49640001147374617465a10401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565790301444665654d6f64656c3c42616c616e63653e0000a104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000a50404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000a9040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164ad04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0000ad040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400b10401405061796c6f61643c42616c616e63653e00000000b1040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400b50401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400bd0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000b5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401b90420526573706f6e736501c001081c526571756573740400b904011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000b9040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040075030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000bd040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401c10420526573706f6e736501c50401081c526571756573740400c104011c5265717565737400000020526573706f6e73650400c5040120526573706f6e736500010000c1040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7495030120456e64706f696e740001306473745f656e64706f696e7495030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000c5040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000c90400000408f0050100cd040000040cf0f4f400d1040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000d504000002d90400d9040000040cf00501910300dd040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400e1040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273e1040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000e504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465729d0301204c6f636174696f6e00012072656365697665729d0301204c6f636174696f6e0000e90400000408f0f000ed040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ef1040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ef504102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501f90414457874726101090500040034000000f904082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400fd040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e617475726500010014456364736104000105014065636473613a3a5369676e617475726500020000fd040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d000001050c1c73705f636f7265146563647361245369676e6174757265000004000505017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d000005050000034100000008000905000004280d051105150519051d05250529052d0531053505000d0510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000110510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000150510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000190510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000001d0510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002105010c45726100002105102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000250510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000290510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000002d05086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000031050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f726167654163636573730000000035050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000003905084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000020000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c79184054dcf4b51238a2c9502107000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000a29d3b60c75200000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a651840002049300c000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01b103081c446f6d61696e73011c446f6d61696e737c445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610b503040000605363686564756c656452756e74696d65557067726164657300010806061d01dd03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040645032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cce103040000244f70657261746f7273000104062cf903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccf10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060609040d04040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060615041904040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060615042904040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccf10304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc3d04040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806064504300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063049040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b48617368000108060645043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c0606064d0451040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc5904040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc5d04040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e48446f6d61696e547852616e6765537461746500010406cc6104040000019d0201c84c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c657449646d0420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e0171040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000165030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200910404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01690301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0195040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060699049d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000a9040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406c9041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406c90418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406cd04a90404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406cd04a90404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000a904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000d1040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01710301ec0001dd043c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e73666572730001080606c904e504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100d102100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e73666572730101080606e9041840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606e90418400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e0199030101010001ed043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01a1030109010001f10464f504042848436865636b4e6f6e5a65726f53656e6465720d05c440436865636b5370656356657273696f6e11051038436865636b547856657273696f6e15051030436865636b47656e6573697319053038436865636b4d6f7274616c6974791d053028436865636b4e6f6e63652505c42c436865636b5765696768742905c4604368617267655472616e73616374696f6e5061796d656e742d05c448436865636b53746f726167654163636573733105c43844697361626c6550616c6c6574733505c43905"} -{"specName":"subspace","specVersion":3,"blockNumber":718959,"blockHash":"0x2d87089f7e5f68b745711e7f52ce3aadbef26c4bfd432d0fdd6132bceaf604a7","metadata":"0x6d6574610e7505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000004884973737565642072657761726420666f722074686520626c6f636b20617574686f7228566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0001046c4973737565642072657761726420666f722074686520766f746572045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601dc0453000004008101013842547265654d61703c4b2c20563e00008101042042547265654d617008044b0110045601dc0004008501000000850100000289010089010000040810dc008d0104284e6f6e5a65726f55333200000400100000009101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578749501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578749501012c4f7074696f6e3c7536343e0000950104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000099010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500009d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f740000a10100000414987101a501a901dc00a5010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c7531360000a9010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000ad0100000418987101a501a901dc0000b101042042547265654d617008044b01a101045601b501000400c501000000b5010000040800b90100b9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400bd010148737232353531393a3a5369676e61747572650000bd010c1c73705f636f72651c73723235353139245369676e617475726500000400c10101205b75383b2036345d0000c101000003400000000800c501000002c90100c90100000408a101b50100cd01042042547265654d617008044b0110045601d101000400d901000000d1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74d50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000d50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000d901000002dd0100dd010000040810d10100e101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000e5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66e9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273f10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465f50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617421020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201ed010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572ed0101184865616465720001347365636f6e645f686561646572ed0101184865616465720000ed01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000f1010000028000f501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465f9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265b901013c4661726d65725369676e61747572650000f901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6efd0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d651d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d651d020124506f744f757470757400000000fd01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a650102012c486973746f727953697a6500013070696563655f6f6666736574a501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74090201405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e6573730d0201345265636f72645769746e6573730001146368756e6ba90101185363616c61720001346368756e6b5f7769746e657373110201304368756e6b5769746e65737300013870726f6f665f6f665f737061636515020120506f7350726f6f66000001020c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400050201284e6f6e5a65726f5536340000050204284e6f6e5a65726f553634000004002c00000009020c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d00000d020c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000011020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00001502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400190201405b75383b2053656c663a3a53495a455d00001902000003a000000008001d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000021020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200002502000004082c2c0029020000040801020102002d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e31020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000350200000408a4340039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d02083870616c6c65745f726577617264732c526577617264506f696e74082c426c6f636b4e756d62657201101c42616c616e6365011800080114626c6f636b10012c426c6f636b4e756d62657200011c7375627369647918011c42616c616e6365000041020000023d020045020c3870616c6c65745f726577617264731870616c6c65741043616c6c040454000104587570646174655f69737375616e63655f706172616d7308015c70726f706f7365725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000150766f7465725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e0000049c536565205b6050616c6c65743a3a7570646174655f69737375616e63655f706172616d73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454014d02045300000400550201185665633c543e00004d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e735102011c526561736f6e73000051020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000055020000024d020059020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d02045300000400610201185665633c543e00005d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000061020000025d020065020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016902045300000400810201185665633c543e000069020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964016d021c42616c616e636501180008010869646d0201084964000118616d6f756e7418011c42616c616e636500006d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001081c446f6d61696e73040071020154446f6d61696e73486f6c644964656e746966696572000000244d657373656e67657204007902015c4d657373656e676572486f6c644964656e746966696572000100007102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400750201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200007502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f724964000000007902082873705f646f6d61696e735c4d657373656e676572486f6c644964656e7469666965720001041c4368616e6e656c04007d02015028436861696e49642c204368616e6e656c496429000000007d0200000408f0f400810200000269020085020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540189020453000004008d0201185665633c543e000089020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e636500008d0200000289020091020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365950201504163636f756e7449644c6f6f6b75704f663c543e00011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374950201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686fa10201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400990201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004009d0201205b75383b2032305d000400009902000006c4009d02000003140000000800a1020000020000a5020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea902085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e63650000ad02085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e63650000b1020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b502086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000b9020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ee1030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd02000002c10200c102084073756273706163655f72756e74696d652c52756e74696d6543616c6c0001301853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400e50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002001c526577617264730400450201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e0004002042616c616e6365730400910201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400b90201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400c50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e6669677304008d0301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400910301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400990301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400d50301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400dd0301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00640000c5020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000134347375626d69745f62756e646c650401346f70617175655f62756e646c65c90201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66110301f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967690301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e666967750301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973747903017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec902082873705f646f6d61696e731842756e646c65142445787472696e73696301cd02184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e63650118000801347365616c65645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e736963730d0301385665633c45787472696e7369633e0000cd02082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000d102082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e6365011800080118686561646572d50201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265090301444f70657261746f725369676e61747572650000d502082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6ed902015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074e102019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000d902082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d651d020124506f744f75747075740001347672665f7369676e6174757265dd0201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000dd02101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66c101012056726650726f6f660000e102082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573e50201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573f5020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273f90201485472616e73666572733c42616c616e63653e0000e502000002e90200e902082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65ed02015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000ed02082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400f1020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000f102082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000f502082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000f902082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696efd02016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574fd02016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0000fd02042042547265654d617008044b01f00456011800040001030000000103000002050300050300000408f0180009030c2873705f646f6d61696e730c617070245369676e617475726500000400bd010148737232353531393a3a5369676e617475726500000d03000002cd020011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed01012858496e76616c696453746174655472616e736974696f6e0400150301e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e04002d0301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400310301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400350301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400390301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f7404003d0301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400590301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b4861736804005d0301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400610301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e73666572730400650301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0009000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f661903013053746f7261676550726f6f6600013c657865637574696f6e5f706861736521030138457865637574696f6e5068617365000019030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465731d03014442547265655365743c5665633c75383e3e00001d030420425472656553657404045401340004003d0100000021030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f661903013053746f7261676550726f6f660001206d69736d61746368250301584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463682903015446696e616c697a65426c6f636b4d69736d617463680002000025030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c753332000100002d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f661903013053746f7261676550726f6f66000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f6600003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473410301585665633c56616c696442756e646c654469676573743e0000410300000245030045030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737449030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e000049030000024d03004d03000004085103550300510304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100005503082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000059030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c75333200005d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f661903013053746f7261676550726f6f66000061030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065f1020144496e76616c696442756e646c655479706500012870726f6f665f646174611903013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c000065030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f66000069030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400006d030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000071030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000075030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747925020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374790301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573810301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00007903082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304007d03014c42547265655365743c4163636f756e7449643e000100007d03042042547265655365740404540100000400a10200000081030000028503008503000004088903180089030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e744964323004009d0201205b75383b2032305d0001000c526177040034011c5665633c75383e000200008d030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e91030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f9502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573950301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9503000002e40099030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011c40696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d739d03018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e807570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374040118757064617465c5030150436861696e416c6c6f776c697374557064617465000404c4536565205b6050616c6c65743a3a7570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374605d2e98696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374080124646f6d61696e5f6964cc0120446f6d61696e4964000118757064617465c5030150436861696e416c6c6f776c697374557064617465000504dc536565205b6050616c6c65743a3a696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374605d2e5c7570646174655f646f6d61696e5f616c6c6f776c69737404011c75706461746573c9030158446f6d61696e416c6c6f776c69737455706461746573000604a0536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f616c6c6f776c697374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656ca10301444665654d6f64656c3c42616c616e63653e0000a1030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e63650000a5030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d657373616765082843426c6f636b4861736801301c4d6d72486173680130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66a903016850726f6f663c43426c6f636b486173682c204d6d72486173683e0001287765696768745f746167bd0301404d6573736167655765696768745461670000a9030c3073705f6d657373656e676572206d657373616765731450726f6f66082843426c6f636b4861736801301c4d6d72486173680130010824436f6e73656e737573080164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e0001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600000018446f6d61696e0c0164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e000130646f6d61696e5f70726f6f661903013053746f7261676550726f6f660001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600010000ad030c3073705f6d657373656e676572206d6573736167657368436f6e73656e737573436861696e4d6d724c65616650726f6f660824426c6f636b4861736801301c4d6d72486173680130000c0150636f6e73656e7375735f626c6f636b5f68617368300124426c6f636b4861736800013c6f70617175655f6d6d725f6c656166b103014c456e636f6461626c654f70617175654c65616600011470726f6f66b50301444d6d7250726f6f663c4d6d72486173683e0000b103084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040034011c5665633c75383e0000b503084473705f6d6d725f7072696d6974697665731450726f6f660410486173680130000c01306c6561665f696e6469636573b90301385665633c4c656166496e6465783e0001286c6561665f636f756e742c01244e6f6465496e6465780001146974656d73150101245665633c486173683e0000b9030000022c00bd030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e74526571756573740400c1030120456e64706f696e7400020040456e64706f696e74526573706f6e73650400c1030120456e64706f696e74000300104e6f6e6500040000c1030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e74496400000000c503084070616c6c65745f6d657373656e67657250436861696e416c6c6f776c6973745570646174650001080c4164640400f0011c436861696e49640000001852656d6f76650400f0011c436861696e496400010000c903082873705f646f6d61696e7358446f6d61696e416c6c6f776c697374557064617465730000080130616c6c6f775f636861696e73cd03014442547265655365743c436861696e49643e00013472656d6f76655f636861696e73cd03014442547265655365743c436861696e49643e0000cd030420425472656553657404045401f0000400d103000000d103000002f000d5030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6ed90301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed903084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964890301384d756c74694163636f756e7449640000dd030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577950201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee103084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400e50301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400e90301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000e5030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000e903081c73705f636f726510566f696400010000ed030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef1030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000f5030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70f903013847656e6573697353746f726167650001406368696c6472656e5f64656661756c740d04019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000f903042042547265654d617008044b01fd0304560101040004000504000000fd030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000001040c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e00000504000002090400090400000408fd030104000d04042042547265654d617008044b01fd03045601f90300040011040000001104000002150400150400000408fd03f9030019040c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000110686173683001104861736800001d040c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f72732d04015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f726577617264732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e00002104042042547265654d617008044b012c04560118000400250400000025040000022904002904000004082c18002d0404204254726565536574040454012c000400b90300000031040c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573350401844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e6365000035040c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d626572011001102852656769737465726564000000304465726567697374657265640400390401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002003050656e64696e67536c6173680003000039040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d62657200003d040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800004104000004082c3d040045040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004004904011c50657262696c6c000049040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200004d04000004082c000051040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e550401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e675904017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000055040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000590404184f7074696f6e040454015d040108104e6f6e6500000010536f6d6504005d0400000100005d040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63683d04012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000061040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73650401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f7368617265736d0401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e0000650400000269040069040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e636500006d0404184f7074696f6e0404540171040108104e6f6e6500000010536f6d6504007104000001000071040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e6365000075040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e66696775030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f79040144446f6d61696e52756e74696d65496e666f000079040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e4964000000007d0400000408cc100081040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074e102010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473b903013c5665633c4f70657261746f7249643e000085040000040ccc10100089040000028d04008d04082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200009104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500009504082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e486173680000990400000408cc2c009d040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765a10401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c7536340000a104086073756273706163655f636f72655f7072696d697469766573105532353600000400a5040148707269766174655f753235363a3a553235360000a5040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d0000a90408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d0000ad040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f660400b104013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d6552656769737472790400b504015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400b90401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400c10401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e52656769737472790400c504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b547265650400c9040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e640400bd04015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb1040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013c48426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d006442616452656365697074416c72656164795265706f72746564000e0000b5040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e7449645479706500090000b9040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000188444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e640400bd04016862756e646c655f73746f726167655f66756e643a3a4572726f7200200034556e636f6e6669726d6564455200210000bd040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e7366657200050000c1040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e0400b904013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e670400b904013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e670400b904013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f720400b904013c5472616e736974696f6e4572726f7200030000c5040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200015058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e657369730400b504017863726174653a3a72756e74696d655f72656769737472793a3a4572726f720012007842756e646c654c696d697443616c63756c6174696f6e4f766572666c6f7700130000c9040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014c58496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e7366657273001100344f76657277726974696e67455200120000cd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e4045300000400950301185665633c543e0000d1040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed504084070616c6c65745f6d657373656e6765721c4368616e6e656c081c42616c616e63650118244163636f756e7449640100002001286368616e6e656c5f6964f401244368616e6e656c49640001147374617465d90401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565a10301444665654d6f64656c3c42616c616e63653e00012c6d617962655f6f776e65720d0101444f7074696f6e3c4163636f756e7449643e0000d904084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000dd0404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000e1040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164e504016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0000e5040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400e90401405061796c6f61643c42616c616e63653e00000000e9040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400ed0401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400f50401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000ed040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f10420526573706f6e736501c001081c526571756573740400f104011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000f1040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e04009d030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000f5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f90420526573706f6e736501fd0401081c526571756573740400f904011c5265717565737400000020526573706f6e73650400fd040120526573706f6e736500010000f9040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e74c1030120456e64706f696e740001306473745f656e64706f696e74c1030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000fd040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000010500000408f005010005050000040cf0f4f40009050c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f780d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e7365730d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00000d0500000211050011050000040cf00501bd030015050c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400015030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040019050144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a4456d697473207768656e207468652074686572652069732062616c616e6365206f766572666c6f772e4c496e76616c6964416c6c6f776564436861696e000c0458496e76616c696420616c6c6f77656420636861696e2e4c4f7065726174696f6e4e6f74416c6c6f776564000d04584f7065726174696f6e206e6f7420616c6c6f7765642e384e6f74446f6d61696e4f776e6572000e04784163636f756e74206973206e6f74206120446f6d61696e206f776e65722e3c436861696e4e6f74416c6c6f776564000f0484436861696e206e6f7420616c6c6f77656420746f206f70656e206368616e6e656c4c496e73756666696369656e7442616c616e6365001004984e6f7420656e6f7567682062616c616e636520746f20646f20746865206f7065726174696f6e2c42616c616e6365486f6c64001104584661696c656420746f20686f6c642062616c616e6365304368616e6e656c4f776e65720012044c4e6f742061206368616e6e656c206f776e65723442616c616e6365556e6c6f636b001304704661696c656420746f20756e6c6f636b207468652062616c616e636504646070616c6c65742d6d657373656e67657260206572726f727319050c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200001d05084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572d90301204c6f636174696f6e0001207265636569766572d90301204c6f636174696f6e0000210500000408f0f00025050c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e29050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e2d05102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730195021043616c6c01c102245369676e6174757265013105144578747261014105000400340000003105082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040035050148656432353531393a3a5369676e61747572650000001c537232353531390400bd010148737232353531393a3a5369676e617475726500010014456364736104003905014065636473613a3a5369676e61747572650002000035050c1c73705f636f72651c65643235353139245369676e617475726500000400c10101205b75383b2036345d000039050c1c73705f636f7265146563647361245369676e6174757265000004003d05017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d00003d05000003410000000800410500000428450549054d05510555055d056105650569056d0500450510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000490510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000004d0510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000510510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000550510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004005905010c45726100005905102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff00005d0510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000610510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000006505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000069050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f72616765416363657373000000006d050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000007105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014000127a000000000080f0fa02000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000030000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d020000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980030000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001205375627370616365012053756273706163655c2c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e28426c6f636b536c6f747301007d01040004a820426f756e646564206d617070696e672066726f6d20626c6f636b206e756d62657220746f20736c6f7444506f74536c6f74497465726174696f6e7300008d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100910148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500009901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100009d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f0000a1010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f0000ad010400046420426c6f636b20617574686f7220696e666f726d6174696f6e44506172656e74426c6f636b566f746572730100b101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000b1010400049420566f7465727320696e207468652063757272656e7420626c6f636b20746875732066617228506f74456e74726f70790100cd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000e1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01e501017c384c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974792502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e74730102200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e29024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d650102200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782938426c6f636b536c6f74436f756e74101006000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b20736c6f74206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e012d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405303102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505350215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473011c526577617264731448417667426c6f636b737061636555736167650100101000000000045901205574696c697a6174696f6e206f6620626c6f636b73706163652028696e2062797465732920627920746865206e6f726d616c2065787472696e73696373207573656420746f2061646a7573742069737375616e63653852657761726473456e61626c656401007804000470205768657468657220726577617264732061726520656e61626c65644452656d61696e696e6749737375616e6365010018400000000000000000000000000000000004c820546f6b656e73206c65667420746f20697373756520746f206661726d65727320617420616e7920676976656e2074696d655450726f706f73657253756273696479506f696e7473010039020400048820426c6f636b2070726f706f736572207375627369647920706172616d657465727348566f74657253756273696479506f696e7473010039020400046420566f746572207375627369647920706172616d657465727301450201a8106c417667426c6f636b737061636555736167654e756d426c6f636b73101064000000040101204e756d626572206f6620626c6f636b73206f76657220776869636820746f20636f6d70757465206176657261676520626c6f636b7370616365207573616765485472616e73616374696f6e42797465466565184085226bcb010000000000000000000000047c20436f7374206f66206f6e652062797465206f6620626c6f636b73706163653c4d6178526577617264506f696e74731010140000000470204d6178206e756d626572206f662072657761726420706f696e74734850726f706f7365725461784f6e566f7465731d0120010000000a000000049020546178206f66207468652070726f706f736572206f6e20766f7465207265776172647300042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402005902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020065020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020085020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01910201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a502053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100a90280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000ad0204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918402837481a630627d05a7c07000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000296605df92d000000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a65184000a053f00d000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100b10240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b5020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001b90201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01ed03081c446f6d61696e73011c446f6d61696e7380445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610f103040000605363686564756c656452756e74696d65557067726164657300010806061d011904040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b6579000104066d032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cc1d04040000244f70657261746f7273000104062c3104040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406cc2d0404000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060641044504040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f7369747300010806064d045104040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c7300010806064d046104040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406cc2d0404000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc7504040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806067d04300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063081040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b4861736800010806067d043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606850489040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc9104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc9504040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e444c61746573745375626d6974746564455201010406990410100000000018910120546865206c6174657374204552207375626d697474656420627920746865206f70657261746f7220666f72206120676976656e20646f6d61696e2e204974206973207573656420746f2064657465726d696e6520696620746865206f70657261746f72b820686173207375626d69747465642062616420455220616e642069732070656e64696e6720746f20736c6173682e005101205468652073746f72616765206974656d206f66206120676976656e206028646f6d61696e5f69642c206f70657261746f725f696429602077696c6c206265207072756e6564206166746572206569746865723a4501202d20416c6c2074686520455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e2061726520636f6e6669726d656420616e64207072756e65648d01202d20416c6c207468652062616420455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e20617265207072756e656420616e6420746865206f70657261746f7220697320736c617368656448446f6d61696e547852616e6765537461746500010406cc9d0404000001c50201c85448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e60436f6e73656e737573536c6f7450726f626162696c69747925024001000000000000000600000000000000048820436f6e73656e73757320636861696e20736c6f742070726f626162696c6974792e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10100002000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c65744964a90420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e3c42756e646c654c6f6e67657669747910100500000004190120486f77206d616e7920626c6f636b20612062756e646c652073686f756c64207374696c6c20636f6e73696465722061732076616c69642061667465722070726f647563656401ad040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b010010100000000000018d030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200cd0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01910301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e01d1040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e67657234344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c7300010806067d02d504040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000e1040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040601051804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406010518040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104060505e10404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104060505e10404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000e104040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000009050400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e38436861696e416c6c6f776c6973740100cd03040004f820416e20616c6c6f776c697374206f6620636861696e7320746861742063616e206f70656e206368616e6e656c2077697468207468697320636861696e2e68446f6d61696e436861696e416c6c6f776c69737455706461746500010406ccc903040008f820412074656d706f726172792073746f7261676520746f2073746f726520616e7920616c6c6f776c697374207570646174657320746f20646f6d61696e2e3d012057696c6c20626520636c656172656420696e20746865206e65787420626c6f636b206f6e6365207468652070726576696f757320626c6f636b20686173206120646f6d61696e2062756e646c652e01990301ec04444368616e6e656c526573657276654665651840000010632d5ec76b0500000000000000049c204368616e6e656c20726573657276652066656520746f206f70656e2061206368616e6e656c2e0115053c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e7366657273000108060601051d05040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100f902100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e7366657273010108060621051840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606210518400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e01d503010101000125053d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01dd0301090100012905642d05042848436865636b4e6f6e5a65726f53656e6465724505c440436865636b5370656356657273696f6e49051038436865636b547856657273696f6e4d051030436865636b47656e6573697351053038436865636b4d6f7274616c69747955053028436865636b4e6f6e63655d05c42c436865636b5765696768746105c4604368617267655472616e73616374696f6e5061796d656e746505c448436865636b53746f726167654163636573736905c43844697361626c6550616c6c6574736d05c47105"} -{"specName":"subspace","specVersion":4,"blockNumber":926644,"blockHash":"0x61855974474c35004ca646706addac3d52b9db2f8aac132de64e83cbf2d3fc07","metadata":"0x6d6574610e7505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000004884973737565642072657761726420666f722074686520626c6f636b20617574686f7228566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0001046c4973737565642072657761726420666f722074686520766f746572045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601dc0453000004008101013842547265654d61703c4b2c20563e00008101042042547265654d617008044b0110045601dc0004008501000000850100000289010089010000040810dc008d0104284e6f6e5a65726f55333200000400100000009101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578749501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578749501012c4f7074696f6e3c7536343e0000950104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000099010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500009d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f740000a10100000414987101a501a901dc00a5010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c7531360000a9010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000ad0100000418987101a501a901dc0000b101042042547265654d617008044b01a101045601b501000400c501000000b5010000040800b90100b9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400bd010148737232353531393a3a5369676e61747572650000bd010c1c73705f636f72651c73723235353139245369676e617475726500000400c10101205b75383b2036345d0000c101000003400000000800c501000002c90100c90100000408a101b50100cd01042042547265654d617008044b0110045601d101000400d901000000d1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74d50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000d50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000d901000002dd0100dd010000040810d10100e101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000e5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66e9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273f10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465f50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617421020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201ed010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572ed0101184865616465720001347365636f6e645f686561646572ed0101184865616465720000ed01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000f1010000028000f501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465f9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265b901013c4661726d65725369676e61747572650000f901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6efd0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d651d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d651d020124506f744f757470757400000000fd01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a650102012c486973746f727953697a6500013070696563655f6f6666736574a501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74090201405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e6573730d0201345265636f72645769746e6573730001146368756e6ba90101185363616c61720001346368756e6b5f7769746e657373110201304368756e6b5769746e65737300013870726f6f665f6f665f737061636515020120506f7350726f6f66000001020c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400050201284e6f6e5a65726f5536340000050204284e6f6e5a65726f553634000004002c00000009020c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d00000d020c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000011020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00001502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400190201405b75383b2053656c663a3a53495a455d00001902000003a000000008001d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000021020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200002502000004082c2c0029020000040801020102002d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e31020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000350200000408a4340039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d02083870616c6c65745f726577617264732c526577617264506f696e74082c426c6f636b4e756d62657201101c42616c616e6365011800080114626c6f636b10012c426c6f636b4e756d62657200011c7375627369647918011c42616c616e6365000041020000023d020045020c3870616c6c65745f726577617264731870616c6c65741043616c6c040454000104587570646174655f69737375616e63655f706172616d7308015c70726f706f7365725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000150766f7465725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e0000049c536565205b6050616c6c65743a3a7570646174655f69737375616e63655f706172616d73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454014d02045300000400550201185665633c543e00004d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e735102011c526561736f6e73000051020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000055020000024d020059020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d02045300000400610201185665633c543e00005d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000061020000025d020065020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016902045300000400810201185665633c543e000069020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964016d021c42616c616e636501180008010869646d0201084964000118616d6f756e7418011c42616c616e636500006d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001081c446f6d61696e73040071020154446f6d61696e73486f6c644964656e746966696572000000244d657373656e67657204007902015c4d657373656e676572486f6c644964656e746966696572000100007102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400750201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200007502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f724964000000007902082873705f646f6d61696e735c4d657373656e676572486f6c644964656e7469666965720001041c4368616e6e656c04007d02015028436861696e49642c204368616e6e656c496429000000007d0200000408f0f400810200000269020085020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540189020453000004008d0201185665633c543e000089020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e636500008d0200000289020091020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365950201504163636f756e7449644c6f6f6b75704f663c543e00011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374950201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686fa10201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400990201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004009d0201205b75383b2032305d000400009902000006c4009d02000003140000000800a1020000020000a5020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea902085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e63650000ad02085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e63650000b1020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b502086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000b9020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ee1030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd02000002c10200c102084073756273706163655f72756e74696d652c52756e74696d6543616c6c0001301853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400e50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002001c526577617264730400450201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e0004002042616c616e6365730400910201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400b90201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400c50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e6669677304008d0301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400910301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400990301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400d50301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400dd0301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00640000c5020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000134347375626d69745f62756e646c650401346f70617175655f62756e646c65c90201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66110301f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967690301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e666967750301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973747903017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec902082873705f646f6d61696e731842756e646c65142445787472696e73696301cd02184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e63650118000801347365616c65645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e736963730d0301385665633c45787472696e7369633e0000cd02082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000d102082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e6365011800080118686561646572d50201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265090301444f70657261746f725369676e61747572650000d502082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6ed902015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074e102019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000d902082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d651d020124506f744f75747075740001347672665f7369676e6174757265dd0201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000dd02101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66c101012056726650726f6f660000e102082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573e50201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573f5020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273f90201485472616e73666572733c42616c616e63653e0000e502000002e90200e902082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65ed02015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000ed02082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400f1020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000f102082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000f502082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000f902082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696efd02016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574fd02016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0000fd02042042547265654d617008044b01f00456011800040001030000000103000002050300050300000408f0180009030c2873705f646f6d61696e730c617070245369676e617475726500000400bd010148737232353531393a3a5369676e617475726500000d03000002cd020011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed01012858496e76616c696453746174655472616e736974696f6e0400150301e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e04002d0301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400310301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400350301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400390301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f7404003d0301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400590301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b4861736804005d0301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400610301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e73666572730400650301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0009000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f661903013053746f7261676550726f6f6600013c657865637574696f6e5f706861736521030138457865637574696f6e5068617365000019030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465731d03014442547265655365743c5665633c75383e3e00001d030420425472656553657404045401340004003d0100000021030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f661903013053746f7261676550726f6f660001206d69736d61746368250301584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463682903015446696e616c697a65426c6f636b4d69736d617463680002000025030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c753332000100002d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f661903013053746f7261676550726f6f66000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f6600003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473410301585665633c56616c696442756e646c654469676573743e0000410300000245030045030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737449030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e000049030000024d03004d03000004085103550300510304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100005503082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000059030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c75333200005d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f661903013053746f7261676550726f6f66000061030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065f1020144496e76616c696442756e646c655479706500012870726f6f665f646174611903013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c000065030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f66000069030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400006d030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000071030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000075030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747925020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374790301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573810301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00007903082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304007d03014c42547265655365743c4163636f756e7449643e000100007d03042042547265655365740404540100000400a10200000081030000028503008503000004088903180089030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e744964323004009d0201205b75383b2032305d0001000c526177040034011c5665633c75383e000200008d030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e91030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f9502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573950301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9503000002e40099030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011c40696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d739d03018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e807570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374040118757064617465c5030150436861696e416c6c6f776c697374557064617465000404c4536565205b6050616c6c65743a3a7570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374605d2e98696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374080124646f6d61696e5f6964cc0120446f6d61696e4964000118757064617465c5030150436861696e416c6c6f776c697374557064617465000504dc536565205b6050616c6c65743a3a696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374605d2e5c7570646174655f646f6d61696e5f616c6c6f776c69737404011c75706461746573c9030158446f6d61696e416c6c6f776c69737455706461746573000604a0536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f616c6c6f776c697374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656ca10301444665654d6f64656c3c42616c616e63653e0000a1030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e63650000a5030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d657373616765082843426c6f636b4861736801301c4d6d72486173680130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66a903016850726f6f663c43426c6f636b486173682c204d6d72486173683e0001287765696768745f746167bd0301404d6573736167655765696768745461670000a9030c3073705f6d657373656e676572206d657373616765731450726f6f66082843426c6f636b4861736801301c4d6d72486173680130010824436f6e73656e737573080164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e0001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600000018446f6d61696e0c0164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e000130646f6d61696e5f70726f6f661903013053746f7261676550726f6f660001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600010000ad030c3073705f6d657373656e676572206d6573736167657368436f6e73656e737573436861696e4d6d724c65616650726f6f660824426c6f636b4861736801301c4d6d72486173680130000c0150636f6e73656e7375735f626c6f636b5f68617368300124426c6f636b4861736800013c6f70617175655f6d6d725f6c656166b103014c456e636f6461626c654f70617175654c65616600011470726f6f66b50301444d6d7250726f6f663c4d6d72486173683e0000b103084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040034011c5665633c75383e0000b503084473705f6d6d725f7072696d6974697665731450726f6f660410486173680130000c01306c6561665f696e6469636573b90301385665633c4c656166496e6465783e0001286c6561665f636f756e742c01244e6f6465496e6465780001146974656d73150101245665633c486173683e0000b9030000022c00bd030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e74526571756573740400c1030120456e64706f696e7400020040456e64706f696e74526573706f6e73650400c1030120456e64706f696e74000300104e6f6e6500040000c1030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e74496400000000c503084070616c6c65745f6d657373656e67657250436861696e416c6c6f776c6973745570646174650001080c4164640400f0011c436861696e49640000001852656d6f76650400f0011c436861696e496400010000c903082873705f646f6d61696e7358446f6d61696e416c6c6f776c697374557064617465730000080130616c6c6f775f636861696e73cd03014442547265655365743c436861696e49643e00013472656d6f76655f636861696e73cd03014442547265655365743c436861696e49643e0000cd030420425472656553657404045401f0000400d103000000d103000002f000d5030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6ed90301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed903084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964890301384d756c74694163636f756e7449640000dd030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577950201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee103084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400e50301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400e90301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000e5030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000e903081c73705f636f726510566f696400010000ed030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef1030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000f5030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70f903013847656e6573697353746f726167650001406368696c6472656e5f64656661756c740d04019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000f903042042547265654d617008044b01fd0304560101040004000504000000fd030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000001040c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e00000504000002090400090400000408fd030104000d04042042547265654d617008044b01fd03045601f90300040011040000001104000002150400150400000408fd03f9030019040c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000110686173683001104861736800001d040c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f72732d04015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f726577617264732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e00002104042042547265654d617008044b012c04560118000400250400000025040000022904002904000004082c18002d0404204254726565536574040454012c000400b90300000031040c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573350401844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e6365000035040c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d626572011001102852656769737465726564000000304465726567697374657265640400390401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002003050656e64696e67536c6173680003000039040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d62657200003d040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800004104000004082c3d040045040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004004904011c50657262696c6c000049040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200004d04000004082c000051040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e550401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e675904017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000055040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000590404184f7074696f6e040454015d040108104e6f6e6500000010536f6d6504005d0400000100005d040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63683d04012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000061040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73650401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f7368617265736d0401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e0000650400000269040069040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e636500006d0404184f7074696f6e0404540171040108104e6f6e6500000010536f6d6504007104000001000071040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e6365000075040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e66696775030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f79040144446f6d61696e52756e74696d65496e666f000079040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e4964000000007d0400000408cc100081040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074e102010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473b903013c5665633c4f70657261746f7249643e000085040000040ccc10100089040000028d04008d04082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200009104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500009504082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e486173680000990400000408cc2c009d040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765a10401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c7536340000a104086073756273706163655f636f72655f7072696d697469766573105532353600000400a5040148707269766174655f753235363a3a553235360000a5040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d0000a90408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d0000ad040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f660400b104013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d6552656769737472790400b504015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400b90401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400c10401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e52656769737472790400c504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b547265650400c9040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e640400bd04015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb1040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013c48426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d006442616452656365697074416c72656164795265706f72746564000e0000b5040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e7449645479706500090000b9040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000188444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e640400bd04016862756e646c655f73746f726167655f66756e643a3a4572726f7200200034556e636f6e6669726d6564455200210000bd040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e7366657200050000c1040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e0400b904013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e670400b904013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e670400b904013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f720400b904013c5472616e736974696f6e4572726f7200030000c5040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200015058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e657369730400b504017863726174653a3a72756e74696d655f72656769737472793a3a4572726f720012007842756e646c654c696d697443616c63756c6174696f6e4f766572666c6f7700130000c9040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014c58496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e7366657273001100344f76657277726974696e67455200120000cd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e4045300000400950301185665633c543e0000d1040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed504084070616c6c65745f6d657373656e6765721c4368616e6e656c081c42616c616e63650118244163636f756e7449640100002001286368616e6e656c5f6964f401244368616e6e656c49640001147374617465d90401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565a10301444665654d6f64656c3c42616c616e63653e00012c6d617962655f6f776e65720d0101444f7074696f6e3c4163636f756e7449643e0000d904084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000dd0404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000e1040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164e504016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0000e5040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400e90401405061796c6f61643c42616c616e63653e00000000e9040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400ed0401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400f50401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000ed040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f10420526573706f6e736501c001081c526571756573740400f104011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000f1040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e04009d030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000f5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f90420526573706f6e736501fd0401081c526571756573740400f904011c5265717565737400000020526573706f6e73650400fd040120526573706f6e736500010000f9040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e74c1030120456e64706f696e740001306473745f656e64706f696e74c1030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000fd040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000010500000408f005010005050000040cf0f4f40009050c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f780d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e7365730d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00000d0500000211050011050000040cf00501bd030015050c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400015030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040019050144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a4456d697473207768656e207468652074686572652069732062616c616e6365206f766572666c6f772e4c496e76616c6964416c6c6f776564436861696e000c0458496e76616c696420616c6c6f77656420636861696e2e4c4f7065726174696f6e4e6f74416c6c6f776564000d04584f7065726174696f6e206e6f7420616c6c6f7765642e384e6f74446f6d61696e4f776e6572000e04784163636f756e74206973206e6f74206120446f6d61696e206f776e65722e3c436861696e4e6f74416c6c6f776564000f0484436861696e206e6f7420616c6c6f77656420746f206f70656e206368616e6e656c4c496e73756666696369656e7442616c616e6365001004984e6f7420656e6f7567682062616c616e636520746f20646f20746865206f7065726174696f6e2c42616c616e6365486f6c64001104584661696c656420746f20686f6c642062616c616e6365304368616e6e656c4f776e65720012044c4e6f742061206368616e6e656c206f776e65723442616c616e6365556e6c6f636b001304704661696c656420746f20756e6c6f636b207468652062616c616e636504646070616c6c65742d6d657373656e67657260206572726f727319050c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200011030496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020054556e757365644e6f646573496e54686550726f6f66000300001d05084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572d90301204c6f636174696f6e0001207265636569766572d90301204c6f636174696f6e0000210500000408f0f00025050c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e29050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e2d05102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730195021043616c6c01c102245369676e6174757265013105144578747261014105000400340000003105082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040035050148656432353531393a3a5369676e61747572650000001c537232353531390400bd010148737232353531393a3a5369676e617475726500010014456364736104003905014065636473613a3a5369676e61747572650002000035050c1c73705f636f72651c65643235353139245369676e617475726500000400c10101205b75383b2036345d000039050c1c73705f636f7265146563647361245369676e6174757265000004003d05017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d00003d05000003410000000800410500000428450549054d05510555055d056105650569056d0500450510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000490510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000004d0510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000510510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000550510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004005905010c45726100005905102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff00005d0510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000610510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000006505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000069050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f72616765416363657373000000006d050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000007105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014000127a000000000080f0fa02000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000040000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d030000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980030000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001205375627370616365012053756273706163655c2c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e28426c6f636b536c6f747301007d01040004a820426f756e646564206d617070696e672066726f6d20626c6f636b206e756d62657220746f20736c6f7444506f74536c6f74497465726174696f6e7300008d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100910148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500009901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100009d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f0000a1010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f0000ad010400046420426c6f636b20617574686f7220696e666f726d6174696f6e44506172656e74426c6f636b566f746572730100b101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000b1010400049420566f7465727320696e207468652063757272656e7420626c6f636b20746875732066617228506f74456e74726f70790100cd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000e1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01e501017c384c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974792502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e74730102200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e29024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d650102200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782938426c6f636b536c6f74436f756e74101006000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b20736c6f74206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e012d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405303102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505350215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473011c526577617264731448417667426c6f636b737061636555736167650100101000000000045901205574696c697a6174696f6e206f6620626c6f636b73706163652028696e2062797465732920627920746865206e6f726d616c2065787472696e73696373207573656420746f2061646a7573742069737375616e63653852657761726473456e61626c656401007804000470205768657468657220726577617264732061726520656e61626c65644452656d61696e696e6749737375616e6365010018400000000000000000000000000000000004c820546f6b656e73206c65667420746f20697373756520746f206661726d65727320617420616e7920676976656e2074696d655450726f706f73657253756273696479506f696e7473010039020400048820426c6f636b2070726f706f736572207375627369647920706172616d657465727348566f74657253756273696479506f696e7473010039020400046420566f746572207375627369647920706172616d657465727301450201a8106c417667426c6f636b737061636555736167654e756d426c6f636b73101064000000040101204e756d626572206f6620626c6f636b73206f76657220776869636820746f20636f6d70757465206176657261676520626c6f636b7370616365207573616765485472616e73616374696f6e4279746546656518406e762244010000000000000000000000047c20436f7374206f66206f6e652062797465206f6620626c6f636b73706163653c4d6178526577617264506f696e74731010140000000470204d6178206e756d626572206f662072657761726420706f696e74734850726f706f7365725461784f6e566f7465731d0120010000000a000000049020546178206f66207468652070726f706f736572206f6e20766f7465207265776172647300042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402005902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020065020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020085020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01910201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a502053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100a90280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000ad0204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c791840905495f8b1a972e62eae07000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000bfd079fe4e2f01000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a651840008058c00e000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100b10240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b5020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001b90201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01ed03081c446f6d61696e73011c446f6d61696e7380445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610f103040000605363686564756c656452756e74696d65557067726164657300010806061d011904040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b6579000104066d032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cc1d04040000244f70657261746f7273000104062c3104040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406cc2d0404000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060641044504040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f7369747300010806064d045104040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c7300010806064d046104040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406cc2d0404000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc7504040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806067d04300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063081040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b4861736800010806067d043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606850489040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc9104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc9504040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e444c61746573745375626d6974746564455201010406990410100000000018910120546865206c6174657374204552207375626d697474656420627920746865206f70657261746f7220666f72206120676976656e20646f6d61696e2e204974206973207573656420746f2064657465726d696e6520696620746865206f70657261746f72b820686173207375626d69747465642062616420455220616e642069732070656e64696e6720746f20736c6173682e005101205468652073746f72616765206974656d206f66206120676976656e206028646f6d61696e5f69642c206f70657261746f725f696429602077696c6c206265207072756e6564206166746572206569746865723a4501202d20416c6c2074686520455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e2061726520636f6e6669726d656420616e64207072756e65648d01202d20416c6c207468652062616420455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e20617265207072756e656420616e6420746865206f70657261746f7220697320736c617368656448446f6d61696e547852616e6765537461746500010406cc9d0404000001c50201c85448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e60436f6e73656e737573536c6f7450726f626162696c69747925024001000000000000000600000000000000048820436f6e73656e73757320636861696e20736c6f742070726f626162696c6974792e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10100002000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c65744964a90420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e3c42756e646c654c6f6e67657669747910100500000004190120486f77206d616e7920626c6f636b20612062756e646c652073686f756c64207374696c6c20636f6e73696465722061732076616c69642061667465722070726f647563656401ad040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b010010100000000000018d030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200cd0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01910301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e01d1040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e67657234344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c7300010806067d02d504040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000e1040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040601051804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406010518040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104060505e10404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104060505e10404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000e104040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000009050400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e38436861696e416c6c6f776c6973740100cd03040004f820416e20616c6c6f776c697374206f6620636861696e7320746861742063616e206f70656e206368616e6e656c2077697468207468697320636861696e2e68446f6d61696e436861696e416c6c6f776c69737455706461746500010406ccc903040008f820412074656d706f726172792073746f7261676520746f2073746f726520616e7920616c6c6f776c697374207570646174657320746f20646f6d61696e2e3d012057696c6c20626520636c656172656420696e20746865206e65787420626c6f636b206f6e6365207468652070726576696f757320626c6f636b20686173206120646f6d61696e2062756e646c652e01990301ec04444368616e6e656c526573657276654665651840000010632d5ec76b0500000000000000049c204368616e6e656c20726573657276652066656520746f206f70656e2061206368616e6e656c2e0115053c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e7366657273000108060601051d05040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100f902100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e7366657273010108060621051840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606210518400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e01d503010101000125053d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01dd0301090100012905642d05042848436865636b4e6f6e5a65726f53656e6465724505c440436865636b5370656356657273696f6e49051038436865636b547856657273696f6e4d051030436865636b47656e6573697351053038436865636b4d6f7274616c69747955053028436865636b4e6f6e63655d05c42c436865636b5765696768746105c4604368617267655472616e73616374696f6e5061796d656e746505c448436865636b53746f726167654163636573736905c43844697361626c6550616c6c6574736d05c47105"} -{"specName":"subspace","specVersion":5,"blockNumber":2099554,"blockHash":"0xbb6b941fd6db6b777c958c73aaaf126a3bd5c1546d086a6078432c90e4160eaf","metadata":"0x6d6574610ec505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173650901011450686173650001146576656e7454010445000118746f706963730d0101185665633c543e000054084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400d801706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e4018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400f8018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000101016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736834011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e6465780000040030010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040004013c737232353531393a3a5075626c696300009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000004884973737565642072657761726420666f722074686520626c6f636b20617574686f7228566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0001046c4973737565642072657761726420666f722074686520766f746572045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501680108084f6b0400c0000000000c4572720400680000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683401104832353600013462756e646c655f617574686f723001284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69643001284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69643001284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69643001284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69643001284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69643001284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69643001284f70657261746f724964000118726561736f6ed401e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001080c45766d000000184175746f496400010000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680134010834496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040034012c526563656970744861736800010000d80c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65dc015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dc08306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e0011c42616c616e63650000e00000061800e40c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964e8011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964ec01244368616e6e656c496404284368616e6e656c20497301146e6f6e6365ec01144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000118726573756c74f4014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964e8011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964ec01244368616e6e656c496404284368616e6e656c20497301146e6f6e6365ec01144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473e8082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000ec083c7072696d69746976655f7479706573105532353600000400f001205b7536343b20345d0000f0000003040000003000f4084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040068013444697370617463684572726f7200010000f80c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727268013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964e8011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722efc00000408ecec0001010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c64050101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574050104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000090108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200000d0100000234001101000002150100150100000408101000190108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e1d01014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652101016473705f72756e74696d653a3a52756e74696d65537472696e6700001d01000006100021010000050200250108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000029010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d732d0101345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973350101205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d010000023101003101000004083838003501000002380039010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c6173733d0101845065724469737061746368436c6173733c57656967687473506572436c6173733e00003d010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014101000c01186e6f726d616c410101045400012c6f7065726174696f6e616c41010104540001246d616e6461746f72794101010454000041010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963450101384f7074696f6e3c5765696768743e0001246d61785f746f74616c450101384f7074696f6e3c5765696768743e0001207265736572766564450101384f7074696f6e3c5765696768743e0000450104184f7074696f6e04045401280108104e6f6e6500000010536f6d65040028000001000049010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61784d0101545065724469737061746368436c6173733c7533323e00004d010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005101082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c75363400005501082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652101013452756e74696d65537472696e67000124696d706c5f6e616d652101013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735901011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800005901040c436f77040454015d010004005d010000005d01000002610100610100000408650110006501000003080000000800690100000504006d010c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657471010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7501084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c753634000079010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560175010453000004007d01013842547265654d61703c4b2c20563e00007d01042042547265654d617008044b011004560175010004008101000000810100000285010085010000040810750100890104284e6f6e5a65726f55333200000400100000008d01085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e7430010c7536340001106e6578749101012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e7430010c75363400012c766f74696e675f6e6578749101012c4f7074696f6e3c7536343e0000910104184f7074696f6e04045401300108104e6f6e6500000010536f6d65040030000001000095010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500009901083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500013063757272656e745f736c6f7475010110536c6f7400012c706172656e745f736c6f7475010110536c6f7400009d0100000414986901a101a501750100a1010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006901010c7531360000a5010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000a90100000418986901a101a50175010000ad01042042547265654d617008044b019d01045601b101000400bd01000000b1010000040800b50100b5010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400b9010148737232353531393a3a5369676e61747572650000b901000003400000000800bd01000002c10100c101000004089d01b10100c501042042547265654d617008044b0110045601c901000400d101000000c9010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74cd0101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000cd0104184f7074696f6e0404540175010108104e6f6e6500000010536f6d65040075010000010000d101000002d50100d5010000040810c90100d901086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000dd010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66e1010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e0000185d015265706f7274206661726d65722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662e9c49662076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e005901546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c7920626c6f636b20617574686f72732077696c6c510163616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c20617320737563682069662074686520626c6f636b20617574686f7220697320646566696e6564206974b477696c6c20626520646566696e6564206173207468652065717569766f636174696f6e207265706f727465722e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e90101485665633c5365676d656e744865616465723e00010859015375626d6974206e6577207365676d656e742068656164657220746f2074686520626c6f636b636861696e2e205468697320697320616e20696e686572656e742065787472696e73696320616e642070617274206f667474686520537562737061636520636f6e73656e737573206c6f6769632e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964659101012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964659101012c4f7074696f6e3c7536343e000208c4456e61626c6520736f6c7574696f6e2072616e67652061646a7573746d656e74206166746572206576657279206572612ee44e6f74653a204e6f20656666656374206f6e2074686520736f6c7574696f6e2072616e676520666f72207468652063757272656e742065726110766f746504012c7369676e65645f766f7465ed0101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e000304f84661726d657220766f74652c2063757272656e746c79206f6e6c79207573656420666f72206578747261207265776172647320746f206661726d6572732e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617419020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e000404f8456e61626c65207265776172647320666f7220626c6f636b7320616e6420766f7465732061742073706563696669656420626c6f636b206865696768742e68656e61626c655f617574686f72696e675f62795f616e796f6e6500050490456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee101084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201e5010849640198001001206f6666656e6465729801084964000110736c6f7475010110536c6f7400013066697273745f686561646572e50101184865616465720001347365636f6e645f686561646572e50101184865616465720000e501102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d6265721d0101184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c01184469676573740000e9010000028000ed01085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801343452657761726441646472657373010000080110766f7465f1010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265b501013c4661726d65725369676e61747572650000f101085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801343452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736834011048617368000110736c6f7475010110536c6f74000120736f6c7574696f6ef50101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6515020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6515020124506f744f757470757400000000f501086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786901012c536563746f72496e646578000130686973746f72795f73697a65f901012c486973746f727953697a6500013070696563655f6f6666736574a101012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74010201405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373050201345265636f72645769746e6573730001146368756e6ba50101185363616c61720001346368756e6b5f7769746e657373090201304368756e6b5769746e65737300013870726f6f665f6f665f73706163650d020120506f7350726f6f660000f9010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400fd0101284e6f6e5a65726f5536340000fd0104284e6f6e5a65726f553634000004003000000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d000005020c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000009020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000d02086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400110201405b75383b2053656c663a3a53495a455d00001102000003a000000008001502086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d000019020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d0014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e6765040030010c753634000100204d616e75616c6c79000200001d0200000408303000210200000408f901f9010025020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e64657200002d0200000408a0380031020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013502045300000400390201185665633c543e00003502083870616c6c65745f726577617264732c526577617264506f696e74082c426c6f636b4e756d62657201101c42616c616e6365011800080114626c6f636b10012c426c6f636b4e756d62657200011c7375627369647918011c42616c616e6365000039020000023502003d020c3870616c6c65745f726577617264731870616c6c65741043616c6c040454000104587570646174655f69737375616e63655f706172616d7308015c70726f706f7365725f737562736964795f706f696e74733102013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000150766f7465725f737562736964795f706f696e74733102013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000004885570646174652064796e616d69632069737375616e636520706172616d6574657273040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540145020453000004004d0201185665633c543e000045020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964650101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e734902011c526561736f6e73000049020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200004d0200000245020051020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015502045300000400590201185665633c543e000055020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720165011c42616c616e6365011800080108696465010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000059020000025502005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400790201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640165021c42616c616e63650118000801086964650201084964000118616d6f756e7418011c42616c616e636500006502084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001081c446f6d61696e73040069020154446f6d61696e73486f6c644964656e746966696572000000244d657373656e67657204007102015c4d657373656e676572486f6c644964656e746966696572000100006902082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e6704006d0201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e49640001002c53746f7261676546756e6404003001284f70657261746f724964000200006d02082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404003001284f70657261746f724964000000007102082873705f646f6d61696e735c4d657373656e676572486f6c644964656e7469666965720001041c4368616e6e656c04007502015028436861696e49642c204368616e6e656c49642900000000750200000408e8ec0079020000026102007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018102045300000400850201185665633c543e000081020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e63650000850200000281020089020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f6465617468080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f757263658d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c697665080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f990201445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e00128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e9d02014c41646a7573746d656e74446972656374696f6e00011464656c7461e00128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400910201304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400950201205b75383b2032305d000400009102000006c0009502000003140000000800990200000200009d020c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000a1020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea502086c73756273706163655f72756e74696d655f7072696d6974697665735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e63650000a902085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e63650000ad020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b102086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000b5020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465786901010c75313600011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e15040154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb902000002bd0200bd02084073756273706163655f72756e74696d652c52756e74696d6543616c6c0001301853797374656d0400290101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400710101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400dd0101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002001c5265776172647304003d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e0004002042616c616e6365730400890201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400b50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400c10201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400d50301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400d90301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400e10301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400090401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400110401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00640000c1020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65c50201444f706171756542756e646c654f663c543e000000487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f660d030154426f783c467261756450726f6f66466f723c543e3e000f005c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6521010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676538011c5665633c75383e00020058757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676538011c5665633c75383e0003004472656769737465725f6f70657261746f72100124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967ad0301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e0001787369676e696e675f6b65795f70726f6f665f6f665f6f776e657273686970050301444f70657261746f725369676e6174757265000400446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69643001284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050048696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e666967b90301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006004c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69643001284f70657261746f7249640008003877697468647261775f7374616b6508012c6f70657261746f725f69643001284f70657261746f724964000118736861726573180120543a3a536861726500090030756e6c6f636b5f66756e647304012c6f70657261746f725f69643001284f70657261746f724964000a0c1101556e6c6f636b7320746865206669727374207769746864726177616c20676976656e2074686520756e6c6f636b696e6720706572696f6420697320636f6d706c6574652e19014576656e2069662072657374206f6620746865207769746864726177616c7320617265206f7574206f6620756e6c6f636b696e6720706572696f642c206e6f6d696e61746f72d073686f756c642063616c6c20746869732065787472696e73696320746f20756e6c6f636b2065616368207769746864726177616c40756e6c6f636b5f6e6f6d696e61746f7204012c6f70657261746f725f69643001284f70657261746f724964000b084901556e6c6f636b7320746865206e6f6d696e61746f7220756e64657220676976656e206f70657261746f7220676976656e2074686520756e6c6f636b696e6720706572696f6420697320636f6d706c6574652e350141206e6f6d696e61746f722063616e20696e69746961746520746865697220756e6c6f636b20676976656e206f70657261746f7220697320616c7265616479206465726567697374657265642e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c697374bd03017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c1cc445787472696e73696320746f2075706461746520646f6d61696e2773206f70657261746f7220616c6c6f77206c6973742e144e6f74653a55012d204966207468652070726576696f757320616c6c6f776564206c6973742069732073657420746f207370656369666963206f70657261746f727320616e64206e657720616c6c6f77206c6973742069732073657439012020746f2060416e796f6e65602c207468656e20646f6d61696e2077696c6c206265636f6d65207065726d697373696f6e656420746f206f70656e20666f7220616c6c206f70657261746f72732e4d012d204966207468652070726576696f757320616c6c6f776564206c6973742069732073657420746f2060416e796f6e6560206f72207370656369666963206f70657261746f727320616e6420746865206e657761012020616c6c6f77206c6973742069732073657420746f207370656369666963206f70657261746f72732c207468656e20616c6c207468652072656769737465726564206e6f7420616c6c6f776564206f70657261746f7273f4202077696c6c20636f6e74696e756520746f206f70657261746520756e74696c20746865792064652d7265676973746572207468656d73656c7665732e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964c80120446f6d61696e4964000d04c4466f726365207374616b696e672065706f6368207472616e736974696f6e20666f72206120676976656e20646f6d61696e887365745f7065726d697373696f6e65645f616374696f6e5f616c6c6f7765645f62790401787065726d697373696f6e65645f616374696f6e5f616c6c6f7765645f6279d10301d473705f646f6d61696e733a3a5065726d697373696f6e6564416374696f6e416c6c6f77656442793c543a3a4163636f756e7449643e000e04d8557064617465207065726d697373696f6e656420616374696f6e20616c6c6f7765642062792073746f72616765206279205375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec502082873705f646f6d61696e731842756e646c65142445787472696e73696301c902184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e63650118000801347365616c65645f686561646572cd0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373090301385665633c45787472696e7369633e0000c902082873705f72756e74696d653c4f706171756545787472696e7369630000040038011c5665633c75383e0000cd02082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e6365011800080118686561646572d10201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265050301444f70657261746f725369676e61747572650000d102082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6ed502015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074dd02019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687428011857656967687400015862756e646c655f65787472696e736963735f726f6f7434016c48656164657248617368466f723c446f6d61696e4865616465723e0000d502082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013400180124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d62657230010c75363400013470726f6f665f6f665f74696d6515020124506f744f75747075740001347672665f7369676e6174757265d90201305672665369676e617475726500012c6f70657261746f725f69643001284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736834011443486173680000d902101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b901012056726650726f6f660000dd02082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013430446f6d61696e4e756d626572011028446f6d61696e4861736801341c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368340128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74340128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368340128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683401104861736800013c696e626f7865645f62756e646c6573e10201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74340128446f6d61696e4861736800013c657865637574696f6e5f74726163650d01013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7434011048323536000128626c6f636b5f66656573f1020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273f50201485472616e73666572733c42616c616e63653e0000e102000002e50200e502082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801340008011862756e646c65e902015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74340110486173680000e902082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013401081c496e76616c69640400ed020144496e76616c696442756e646c65547970650000001456616c696404003401104861736800010000ed02082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020044496e686572656e7445787472696e736963040010010c7533320004004c496e76616c696442756e646c6557656967687400050000f102082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000f502082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ef902016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574f902016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564f902016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564f902016842547265654d61703c436861696e49642c2042616c616e63653e0000f902042042547265654d617008044b01e804560118000400fd02000000fd02000002010300010300000408e8180005030c2873705f646f6d61696e730c617070245369676e617475726500000400b9010148737232353531393a3a5369676e617475726500000903000002c902000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f6610184e756d62657201101048617368013430446f6d61696e48656164657201e5011c4d6d7248617368013400140124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736834016c48656164657248617368466f723c446f6d61696e4865616465723e00013c6d617962655f6d6d725f70726f6f66110301e44f7074696f6e3c436f6e73656e737573436861696e4d6d724c65616650726f6f663c4e756d6265722c20486173682c204d6d72486173683e3e00017c6d617962655f646f6d61696e5f72756e74696d655f636f64655f70726f6f66250301c84f7074696f6e3c446f6d61696e52756e74696d65436f646541743c4e756d6265722c20486173682c204d6d72486173683e3e00011470726f6f66390301b4467261756450726f6f6656617269616e743c4e756d6265722c20486173682c20446f6d61696e4865616465723e0000110304184f7074696f6e0404540115030108104e6f6e6500000010536f6d650400150300000100001503083c73705f73756273706163655f6d6d7268436f6e73656e737573436861696e4d6d724c65616650726f6f660c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d7248617368013400100158636f6e73656e7375735f626c6f636b5f6e756d62657210013043426c6f636b4e756d626572000150636f6e73656e7375735f626c6f636b5f6861736834012843426c6f636b4861736800013c6f70617175655f6d6d725f6c6561661903014c456e636f6461626c654f70617175654c65616600011470726f6f661d0301444d6d7250726f6f663c4d6d72486173683e00001903084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040038011c5665633c75383e00001d03084473705f6d6d725f7072696d6974697665731450726f6f660410486173680134000c01306c6561665f696e6469636573210301385665633c4c656166496e6465783e0001286c6561665f636f756e743001244e6f6465496e6465780001146974656d730d0101245665633c486173683e000021030000023000250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664c446f6d61696e52756e74696d65436f646541740c184e756d6265720110104861736801341c4d6d72486173680134000801246d6d725f70726f6f66150301c4436f6e73656e737573436861696e4d6d724c65616650726f6f663c4e756d6265722c20486173682c204d6d72486173683e000164646f6d61696e5f72756e74696d655f636f64655f70726f6f662d030158446f6d61696e52756e74696d65436f646550726f6f6600002d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6658446f6d61696e52756e74696d65436f646550726f6f66000004003103013053746f7261676550726f6f66000031030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465733503014442547265655365743c5665633c75383e3e00003503042042547265655365740404540138000400350100000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6644467261756450726f6f6656617269616e740c184e756d62657201101048617368013430446f6d61696e48656164657201e501011c58496e76616c696453746174655472616e736974696f6e04003d03016c496e76616c696453746174655472616e736974696f6e50726f6f660000002c56616c696442756e646c6504004d0301b056616c696442756e646c6550726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00010054496e76616c696445787472696e73696373526f6f74040059030168496e76616c696445787472696e73696373526f6f7450726f6f6600020038496e76616c696442756e646c65730400990301bc496e76616c696442756e646c657350726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00030058496e76616c6964446f6d61696e426c6f636b486173680400a103016c496e76616c6964446f6d61696e426c6f636b4861736850726f6f6600040040496e76616c6964426c6f636b466565730400a5030154496e76616c6964426c6f636b4665657350726f6f6600050040496e76616c69645472616e73666572730400a9030154496e76616c69645472616e736665727350726f6f66000600003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66000008013c657865637574696f6e5f70726f6f663103013053746f7261676550726f6f6600013c657865637574696f6e5f706861736541030138457865637574696f6e5068617365000041030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f663103013053746f7261676550726f6f660001206d69736d61746368450301584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463684903015446696e616c697a65426c6f636b4d69736d617463680002000045030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000049030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c753332000100004d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f660c184e756d62657201101048617368013430446f6d61696e48656164657201e5010004014462756e646c655f776974685f70726f6f66510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e000051030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f66544f706171756542756e646c655769746850726f6f6610184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e63650118000c011862756e646c65c50201c44f706171756542756e646c653c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00013062756e646c655f696e64657810010c75333200015062756e646c655f73746f726167655f70726f6f66550301585375636365737366756c42756e646c657350726f6f66000055030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f66585375636365737366756c42756e646c657350726f6f66000004003103013053746f7261676550726f6f66000059030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f6600000c015076616c69645f62756e646c655f646967657374735d0301585665633c56616c696442756e646c654469676573743e000158626c6f636b5f72616e646f6d6e6573735f70726f6f6675030150426c6f636b52616e646f6d6e65737350726f6f66000190646f6d61696e5f696e686572656e745f65787472696e7369635f646174615f70726f6f6679030180446f6d61696e496e686572656e7445787472696e7369634461746150726f6f6600005d0300000261030061030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737465030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e000065030000026903006903000004086d037103006d0304184f7074696f6e04045401380108104e6f6e6500000010536f6d6504003800000100007103082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040038011c5665633c75383e00000010486173680400340110483235360001000075030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6650426c6f636b52616e646f6d6e65737350726f6f66000004003103013053746f7261676550726f6f66000079030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6680446f6d61696e496e686572656e7445787472696e7369634461746150726f6f66000014013c74696d657374616d705f70726f6f667d03015454696d657374616d7053746f7261676550726f6f660001886d617962655f646f6d61696e5f72756e74696d655f757067726164655f70726f6f668103017c4d61796265446f6d61696e52756e74696d65557067726164656450726f6f6600017464796e616d69635f636f73745f6f665f73746f726167655f70726f6f668d03016444796e616d6963436f73744f6653746f7261676550726f6f66000178636f6e73656e7375735f636861696e5f627974655f6665655f70726f6f6691030180436f6e73656e7375735472616e73616374696f6e4279746546656550726f6f66000170646f6d61696e5f636861696e5f616c6c6f776c6973745f70726f6f669503019c446f6d61696e436861696e73416c6c6f776c69737455706461746553746f7261676550726f6f6600007d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f665454696d657374616d7053746f7261676550726f6f66000004003103013053746f7261676550726f6f66000081030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f667c4d61796265446f6d61696e52756e74696d65557067726164656450726f6f660000080130626c6f636b5f64696765737485030140426c6f636b44696765737450726f6f6600015c6e65775f646f6d61696e5f72756e74696d655f636f6465890301784f7074696f6e3c446f6d61696e52756e74696d65436f646550726f6f663e000085030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6640426c6f636b44696765737450726f6f66000004003103013053746f7261676550726f6f660000890304184f7074696f6e040454012d030108104e6f6e6500000010536f6d6504002d0300000100008d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f666444796e616d6963436f73744f6653746f7261676550726f6f66000004003103013053746f7261676550726f6f66000091030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6680436f6e73656e7375735472616e73616374696f6e4279746546656550726f6f66000004003103013053746f7261676550726f6f66000095030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f669c446f6d61696e436861696e73416c6c6f776c69737455706461746553746f7261676550726f6f66000004003103013053746f7261676550726f6f66000099030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664c496e76616c696442756e646c657350726f6f660c184e756d62657201101048617368013430446f6d61696e48656164657201e5010010013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065ed020144496e76616c696442756e646c655479706500016c69735f747275655f696e76616c69645f66726175645f70726f6f66200110626f6f6c00012870726f6f665f646174619d0301cc496e76616c696442756e646c657350726f6f66446174613c4e756d6265722c20486173682c20446f6d61696e4865616465723e00009d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c696442756e646c657350726f6f66446174610c184e756d62657201101048617368013430446f6d61696e48656164657201e501010c2445787472696e73696304003103013053746f7261676550726f6f660000001842756e646c650400510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001004842756e646c65416e64457865637574696f6e08014462756e646c655f776974685f70726f6f66510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00013c657865637574696f6e5f70726f6f663103013053746f7261676550726f6f6600020000a1030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f6600000401506469676573745f73746f726167655f70726f6f663103013053746f7261676550726f6f660000a5030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66000004013473746f726167655f70726f6f663103013053746f7261676550726f6f660000a9030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66000004013473746f726167655f70726f6f663103013053746f7261676550726f6f660000ad030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579b10301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f746178b503011c50657263656e740000b1030c2873705f646f6d61696e730c617070185075626c69630000040004013c737232353531393a3a5075626c69630000b5030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000b9030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6521010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687428011857656967687400015c62756e646c655f736c6f745f70726f626162696c6974791d020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374bd0301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573c50301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e0000bd03082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f72730400c103014c42547265655365743c4163636f756e7449643e00010000c1030420425472656553657404045401000004009902000000c503000002c90300c90300000408cd031800cd030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400950201205b75383b2032305d0001000c526177040038011c5665633c75383e00020000d103082873705f646f6d61696e736c5065726d697373696f6e6564416374696f6e416c6c6f776564427904244163636f756e74496401000108204163636f756e74730400990201385665633c4163636f756e7449643e00000018416e796f6e6500010000d5030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73200110626f6f6c000004704368616e676520656e61626c6520646f6d61696e732073746174652e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765200110626f6f6c000104a8456e61626c65206f722064697361626c652064796e616d696320636f7374206f662073746f726167652e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273200110626f6f6c000204c8456e61626c65206f722064697361626c652062616c616e6365207472616e736665727320666f7220616c6c2075736572732e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73200110626f6f6c000304b0456e61626c65206f722064697361626c652063616c6c732066726f6d206e6f6e2d726f6f742075736572732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d0000003c7665737465645f7472616e73666572080110646573748d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65dc015056657374696e675363686564756c654f663c543e000100607570646174655f76657374696e675f7363686564756c657308010c77686f8d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573dd0301645665633c56657374696e675363686564756c654f663c543e3e00020024636c61696d5f666f72040110646573748d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd03000002dc00e1030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011c40696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964e8011c436861696e4964000118706172616d73e5030154496e6974696174654368616e6e656c506172616d7300000cc041206e6577204368616e6e656c20697320696e697469617465642077697468206120666f726569676e20636861696e2ec84e657874204368616e6e656c204944206973207573656420746f2061737369676e20746865206e6577206368616e6e656c2e19014368616e6e656c2069732073657420746f20696e6974696174656420616e6420646f206e6f7420616363657074206f72207265636569766520616e79206d657373616765732e34636c6f73655f6368616e6e656c080120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c4964000108bc416e206f70656e206368616e6e656c20697320636c6f7365642077697468206120666f726569676e20636861696e2e0d014368616e6e656c2069732073657420746f20436c6f73656420616e6420646f206e6f7420616363657074206f72207265636569766520616e79206d657373616765732e3472656c61795f6d65737361676504010c6d7367e90301e843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4d6d72486173683e0002040d01526563656976657320616e20496e626f78206d6573736167652074686174206e6565647320746f2062652076616c69646174656420616e642070726f6365737365642e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367e90301e843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4d6d72486173683e000304fc5265636569766573206120726573706f6e73652066726f6d20746865206473745f636861696e20666f722061206d65737361676520696e204f7574626f782e807570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374040118757064617465f9030150436861696e416c6c6f776c697374557064617465000404b0412063616c6c20746f2075706461746520636f6e73656e73757320636861696e20616c6c6f77206c6973742e98696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374080124646f6d61696e5f6964c80120446f6d61696e4964000118757064617465f9030150436861696e416c6c6f776c697374557064617465000504d0412063616c6c20746f20696e69746961746520636861696e20616c6c6f776c69737420757064617465206f6e20646f6d61696e735c7570646174655f646f6d61696e5f616c6c6f776c69737404011c75706461746573fd030158446f6d61696e416c6c6f776c69737455706461746573000604c0416e20696e686572656e742063616c6c20746f2075706461746520616c6c6f776c69737420666f7220646f6d61696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee503084070616c6c65745f6d657373656e67657254496e6974696174654368616e6e656c506172616d7300000401546d61785f6f7574676f696e675f6d6573736167657310010c7533320000e9030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d72486173680134001801307372635f636861696e5f6964e8011c436861696e49640001306473745f636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e636500011470726f6f66ed0301a050726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e0001287765696768745f746167f10301404d6573736167655765696768745461670000ed030c3073705f6d657373656e676572206d657373616765731450726f6f660c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d72486173680134010824436f6e73656e737573080164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66150301f4436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e0001346d6573736167655f70726f6f663103013053746f7261676550726f6f6600000018446f6d61696e0c0164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66150301f4436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e000130646f6d61696e5f70726f6f663103013053746f7261676550726f6f660001346d6573736167655f70726f6f663103013053746f7261676550726f6f6600010000f1030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e74526571756573740400f5030120456e64706f696e7400020040456e64706f696e74526573706f6e73650400f5030120456e64706f696e74000300104e6f6e6500040000f5030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e740001040849640400300128456e64706f696e74496400000000f903084070616c6c65745f6d657373656e67657250436861696e416c6c6f776c6973745570646174650001080c4164640400e8011c436861696e49640000001852656d6f76650400e8011c436861696e496400010000fd03082873705f646f6d61696e7358446f6d61696e416c6c6f776c697374557064617465730000080130616c6c6f775f636861696e730104014442547265655365743c436861696e49643e00013472656d6f76655f636861696e730104014442547265655365743c436861696e49643e000001040420425472656553657404045401e800040005040000000504000002e80009040c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e0d0401204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e0000083901496e69746961746573207472616e73666572206f662066756e64732066726f6d206163636f756e74206f6e207372635f636861696e20746f206163636f756e74206f6e206473745f636861696e2e410146756e647320617265206275726e6564206f6e207372635f636861696e20666972737420616e6420617265206d696e746564206f6e206473745f636861696e207573696e67204d657373656e6765722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d04084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964e8011c436861696e49640001286163636f756e745f6964cd0301384d756c74694163636f756e744964000011040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e65778d0201504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400190401746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f696404001d0401410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000019040c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200001d04081c73705f636f726510566f69640001000021040c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2504082873705f646f6d61696e733452756e74696d654f626a65637408184e756d6265720110104861736801340020013072756e74696d655f6e616d6521010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683401104861736800012c7261775f67656e657369732904012852617747656e6573697300011c76657273696f6e5501013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000029040c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f702d04013847656e6573697353746f726167650001406368696c6472656e5f64656661756c744104019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00002d04042042547265654d617008044b0131040456013504000400390400000031040c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040038011c5665633c75383e000035040c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040038011c5665633c75383e000039040000023d04003d040000040831043504004104042042547265654d617008044b0131040456012d040004004504000000450400000249040049040000040831042d04004d040c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680134000c012c7261775f67656e657369732904012852617747656e6573697300011c76657273696f6e5501013852756e74696d6556657273696f6e0001106861736834011048617368000051040c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f72496401301c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f72735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f72736104015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f726577617264735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e00005504042042547265654d617008044b013004560118000400590400000059040000025d04005d04000004083018006104042042547265655365740404540130000400210300000065040c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579b10301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f746178b503011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573690401844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e6365000069040c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110011028526567697374657265640000003044657265676973746572656404006d0401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002003050656e64696e67536c617368000300006d040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63687104012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000071040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800c80120446f6d61696e4964000010012845706f6368496e64657800007504000004083071040079040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004007d04011c50657262696c6c00007d040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000081040000040830000085040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e890401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e678d04017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000089040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e636500008d0404184f7074696f6e0404540191040108104e6f6e6500000010536f6d6504009104000001000091040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63687104012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000095040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73990401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573a10401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e000099040000029d04009d040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964c80120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000a10404184f7074696f6e04045401a5040108104e6f6e6500000010536f6d650400a5040000010000a5040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63687104012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e63650000a9040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680134244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736834012c5265636569707448617368000134646f6d61696e5f636f6e666967b9030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666fad040144446f6d61696e52756e74696d65496e666f0000ad040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001080c45564d040120636861696e5f696430012845564d436861696e4964000000184175746f496400010000b10400000408c81000b5040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013430446f6d61696e4e756d626572011028446f6d61696e4861736801341c42616c616e6365011800080144657865637574696f6e5f72656365697074dd02010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f6964732103013c5665633c4f70657261746f7249643e0000b9040000040cc8101000bd04000002c10400c104082873705f646f6d61696e733042756e646c654469676573740410486173680134000c012c6865616465725f686173683401104861736800013c65787472696e736963735f726f6f743401104861736800011073697a6510010c7533320000c504083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f72735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e63650000c904082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013400140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368340128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368340128446f6d61696e4861736800012873746174655f726f6f74340128446f6d61696e4861736800013c65787472696e736963735f726f6f74340128446f6d61696e486173680000cd0400000408c83000d104042042547265654d617008044b0110045601d504000400d904000000d5040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727964446f6d61696e52756e74696d6555706772616465456e74727904104861736801340008011c61745f686173683401104861736800013c7265666572656e63655f636f756e7410010c7533320000d904000002dd0400dd040000040810d50400e1040000021000e5040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765e90401105532353600013c696e74657276616c5f626c6f636b7330010c753634000140696e74657276616c5f62756e646c657330010c7536340000e904086073756273706163655f636f72655f7072696d697469766573105532353600000400ed040148707269766174655f753235363a3a553235360000ed040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f001205b7536343b20345d0000f10408346672616d655f737570706f72742050616c6c65744964000004006501011c5b75383b20385d0000f5040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400012028467261756450726f6f660400f904013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904000505015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400090501305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400110501445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904001505014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040019050138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404000d05015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273705065726d697373696f6e6564416374696f6e4e6f74416c6c6f776564000704c45065726d697373696f6e656420616374696f6e206973206e6f7420616c6c6f776564206279207468652063616c6c65722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef9040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200015448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c006442616452656365697074416c72656164795265706f72746564000d002c4261644d6d7250726f6f66000e0048556e65787065637465644d6d7250726f6f66000f003c4d697373696e674d6d7250726f6f660010003c52756e74696d654e6f74466f756e6400110078446f6d61696e52756e74696d65436f646550726f6f664e6f74466f756e6400120080556e6578706563746564446f6d61696e52756e74696d65436f646550726f6f660013003053746f7261676550726f6f660400fd04018073746f726167655f70726f6f663a3a566572696669636174696f6e4572726f7200140000fd040c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6644566572696669636174696f6e4572726f7200013c64496e76616c696442756e646c6553746f7261676550726f6f660000004c52756e74696d65436f64654e6f74466f756e6400010078556e6578706563746564446f6d61696e52756e74696d65557067726164650002006c426c6f636b52616e646f6d6e65737353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720003005454696d657374616d7053746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000400745375636365737366756c42756e646c657353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000500785472616e73616374696f6e4279746546656553746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f7200060088446f6d61696e416c6c6f776c6973745570646174657353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720007005c426c6f636b44696765737453746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720008006c52756e74696d65526567697374727953746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720009008044796e616d6963436f73744f6653746f7261676553746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000a004844696765737453746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000b0054426c6f636b4665737353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000c00545472616e736665727353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000d005445787472696e73696353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000e000001050c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200011030496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020054556e757365644e6f646573496e54686550726f6f660003000005050c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e744964547970650009000009050c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000188444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b65790018006c4475706c69636174654f70657261746f725369676e696e674b6579001900784d697373696e674f70657261746f7245706f636853686172655072696365001a00444d697373696e675769746864726177616c001b004045706f63684e6f74436f6d706c657465001c005c556e6c6f636b506572696f644e6f74436f6d706c657465001d005c4f70657261746f724e6f74446572656769737465726564001e004442756e646c6553746f7261676546756e6404000d05016862756e646c655f73746f726167655f66756e643a3a4572726f72001f0034556e636f6e6669726d6564455200200068496e76616c69645369676e696e674b65795369676e6174757265002100000d050c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000011050c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001086846696e616c697a65446f6d61696e45706f63685374616b696e6704000905013c5472616e736974696f6e4572726f72000000544f70657261746f725265776172645374616b696e6704000905013c5472616e736974696f6e4572726f720001000015050c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200015058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304000505017863726174653a3a72756e74696d655f72656769737472793a3a4572726f720012007842756e646c654c696d697443616c63756c6174696f6e4f766572666c6f770013000019050c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200015458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e7366657273001100344f76657277726974696e6745520012003c52756e74696d654e6f74466f756e64001300444c617374426c6f636b4e6f74466f756e64001400001d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dc045300000400dd0301185665633c543e000021050c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2505084070616c6c65745f6d657373656e6765721c4368616e6e656c081c42616c616e63650118244163636f756e7449640100002001286368616e6e656c5f6964ec01244368616e6e656c49640001147374617465290501304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365ec01144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365ec01144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e63652d0501344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565310501444665654d6f64656c3c42616c616e63653e00012c6d617962655f6f776e6572050101444f7074696f6e3c4163636f756e7449643e00002905084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f736564000200002d0504184f7074696f6e04045401ec0108104e6f6e6500000010536f6d650400ec000001000031050c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000035050c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964e8011c436861696e49640001306473745f636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e636500011c7061796c6f61643905016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e63652d0501344f7074696f6e3c4e6f6e63653e000039050c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e63650118010408563004003d0501405061796c6f61643c42616c616e63653e000000003d050c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400410501290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e7404004d0501c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000041050c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401450520526573706f6e736501bc01081c5265717565737404004505011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000045050c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e0400490501684368616e6e656c4f70656e506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000049050c3073705f6d657373656e676572206d65737361676573444368616e6e656c4f70656e506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c310501444665654d6f64656c3c42616c616e63653e00004d050c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401510520526573706f6e736501550501081c5265717565737404005105011c5265717565737400000020526573706f6e7365040055050120526573706f6e73650001000051050c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e74f5030120456e64706f696e740001306473745f656e64706f696e74f5030120456e64706f696e7400011c7061796c6f616438013c456e64706f696e745061796c6f6164000055050418526573756c740804540138044501680108084f6b040038000000000c4572720400680000010000590500000408e8fc005d050000040ce8ecec0061050c4070616c6c65745f6d657373656e676572206d65737361676573444d6573736167655765696768745461677300000801186f7574626f78650501c042547265654d61703c28436861696e49642c204d6573736167654964292c204d6573736167655765696768745461673e00013c696e626f785f726573706f6e736573650501c042547265654d61703c28436861696e49642c204d6573736167654964292c204d6573736167655765696768745461673e00006505042042547265654d617008044b015905045601f103000400690500000069050000026d05006d05000004085905f1030071050c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400015030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040001050144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a4456d697473207768656e207468652074686572652069732062616c616e6365206f766572666c6f772e4c496e76616c6964416c6c6f776564436861696e000c0458496e76616c696420616c6c6f77656420636861696e2e4c4f7065726174696f6e4e6f74416c6c6f776564000d04584f7065726174696f6e206e6f7420616c6c6f7765642e384e6f74446f6d61696e4f776e6572000e04784163636f756e74206973206e6f74206120446f6d61696e206f776e65722e3c436861696e4e6f74416c6c6f776564000f0484436861696e206e6f7420616c6c6f77656420746f206f70656e206368616e6e656c4c496e73756666696369656e7442616c616e6365001004984e6f7420656e6f7567682062616c616e636520746f20646f20746865206f7065726174696f6e2c42616c616e6365486f6c64001104584661696c656420746f20686f6c642062616c616e6365304368616e6e656c4f776e65720012044c4e6f742061206368616e6e656c206f776e65723442616c616e6365556e6c6f636b001304704661696c656420746f20756e6c6f636b207468652062616c616e636504646070616c6c65742d6d657373656e67657260206572726f72737505084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465720d0401204c6f636174696f6e00012072656365697665720d0401204c6f636174696f6e0000790500000408e8e8007d050c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e81050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e8505102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373018d021043616c6c01bd02245369676e6174757265018905144578747261019105000400380000008905082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400b9010148656432353531393a3a5369676e61747572650000001c537232353531390400b9010148737232353531393a3a5369676e617475726500010014456364736104008d05014065636473613a3a5369676e6174757265000200008d05000003410000000800910500000428950599059d05a105a505ad05b105b505b905bd0500950510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000990510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000009d0510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000a10510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000a50510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400a905010c4572610000a905102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000ad0510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e6365040454000004001d010120543a3a4e6f6e63650000b10510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000b505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e0013042616c616e63654f663c543e0000b9050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000bd050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000c105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023411010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000190104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000901040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002501040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01290101581830426c6f636b576569676874733901f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746849013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687451014000127a000000000080f0fa02000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5501c50320737562737061636520737562737061636500000000050000000000000044df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d040000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980030000003fdc5ad7fc3849be01000000dd5b344671f65a6a0200000091d5df18b0d2cf5802000000fbc577b9d747efd6010000000000000000000484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978690108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e016d01002454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0171010004344d696e696d756d506572696f643020f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001205375627370616365012053756273706163655c2c47656e65736973536c6f74010075012000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100750120000000000000000004542043757272656e7420736c6f74206e756d6265722e28426c6f636b536c6f747301007901040004a820426f756e646564206d617070696e672066726f6d20626c6f636b206e756d62657220746f20736c6f7444506f74536c6f74497465726174696f6e7300008901040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e67657301008d0148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501002004000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500009501040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f74000075010400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100200400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000099010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f00009d010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e6765000030040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f0000a9010400046420426c6f636b20617574686f7220696e666f726d6174696f6e44506172656e74426c6f636b566f746572730100ad01040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000ad010400049420566f7465727320696e207468652063757272656e7420626c6f636b20746875732066617228506f74456e74726f70790100c501040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d9010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010020040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01dd01017c384c426c6f636b417574686f72696e6744656c61797501200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c61797501200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67653020a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791d02400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f901200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e21024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f901200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72690108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782938426c6f636b536c6f74436f756e74101006000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b20736c6f74206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e01250202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405342902040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805052d020d010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a038040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473011c526577617264731448417667426c6f636b737061636555736167650100101000000000045901205574696c697a6174696f6e206f6620626c6f636b73706163652028696e2062797465732920627920746865206e6f726d616c2065787472696e73696373207573656420746f2061646a7573742069737375616e63653852657761726473456e61626c656401002004000470205768657468657220726577617264732061726520656e61626c65644452656d61696e696e6749737375616e6365010018400000000000000000000000000000000004c820546f6b656e73206c65667420746f20697373756520746f206661726d65727320617420616e7920676976656e2074696d655450726f706f73657253756273696479506f696e7473010031020400048820426c6f636b2070726f706f736572207375627369647920706172616d657465727348566f74657253756273696479506f696e7473010031020400046420566f746572207375627369647920706172616d6574657273013d0201a4106c417667426c6f636b737061636555736167654e756d426c6f636b73101064000000040101204e756d626572206f6620626c6f636b73206f76657220776869636820746f20636f6d70757465206176657261676520626c6f636b7370616365207573616765485472616e73616374696f6e427974654665651840e5585cbd000000000000000000000000047c20436f7374206f66206f6e652062797465206f6620626c6f636b73706163653c4d6178526577617264506f696e74731010140000000470204d6178206e756d626572206f662072657761726420706f696e74734850726f706f7365725461784f6e566f746573150120010000000a000000049020546178206f66207468652070726f706f736572206f6e20766f7465207265776172647300042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004102040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200510204000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c647301010402005d020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402007d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01890201a810484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010000000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a102053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100a50280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01002004000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000a90204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b010504d696e5265706c69636174696f6e466163746f726901083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918401a7a0ad02f22b24bc25c08000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c65646765641840003ba00c9a463502000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400040806015000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100ad0240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b1020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001b50201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e012104081c446f6d61696e73011c446f6d61696e7390445375636365737366756c42756e646c657301010406c80d01040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401003020107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406102504040000605363686564756c656452756e74696d655570677261646573000108060615014d04040000384e6578744f70657261746f724964010030200000000000000000003c4f70657261746f7249644f776e6572000104063000040000484f70657261746f725369676e696e674b657900010406b10330040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406c85104040000244f70657261746f727300010406306504040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e4c4f70657261746f7248696768657374536c6f7401010406303020000000000000000004e020546865206869676865737420736c6f74206f66207468652062756e646c65207375626d697474656420627920616e206f70657261746f72484f70657261746f7242756e646c65536c6f740101040630610404000871012054686520736574206f6620736c6f74206f66207468652062756e646c65207375626d697474656420627920616e206f70657261746f7220696e207468652063757272656e7420626c6f636b2c20636c65617265642061742074686568206e65787420626c6f636b20696e697469616c697a6174696f6e5c4f70657261746f7245706f636853686172655072696365000108060675047904040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060681048504040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060681049504040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104063010100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406c8610404000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8a904040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606b104340400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f6465730001040634b5040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c82004000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b486173680001080606b1043404001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606b904bd040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406343004000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c8c504040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406c8c904040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e444c61746573745375626d6974746564455201010406cd0410100000000018910120546865206c6174657374204552207375626d697474656420627920746865206f70657261746f7220666f72206120676976656e20646f6d61696e2e204974206973207573656420746f2064657465726d696e6520696620746865206f70657261746f72b820686173207375626d69747465642062616420455220616e642069732070656e64696e6720746f20736c6173682e005101205468652073746f72616765206974656d206f66206120676976656e206028646f6d61696e5f69642c206f70657261746f725f696429602077696c6c206265207072756e6564206166746572206569746865723a4501202d20416c6c2074686520455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e2061726520636f6e6669726d656420616e64207072756e65648d01202d20416c6c207468652062616420455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e20617265207072756e656420616e6420746865206f70657261746f7220697320736c61736865646c5065726d697373696f6e6564416374696f6e416c6c6f77656442790000d1030400045d012053746f7261676520666f72205065726d697373696f6e6564416374696f6e7320666f7220646f6d61696e20696e7374616e74696174696f6e20616e64206f74686572207065726d697373696f6e65642063616c6c732e60416363756d756c61746564547265617375727946756e6473010018400000000000000000000000000000000008550120416363756d756c6174652074726561737572792066756e64732074656d706f726172696c7920756e74696c207468652066756e6473206172652061626f7665204578697374656e7469616c20646573706f69742e250120576520646f207468697320746f20656e73757265206d696e74696e6720736d616c6c20616d6f756e747320696e746f20747265617375727920776f756c64206e6f74206661696c2e6c446f6d61696e52756e74696d65557067726164655265636f7264730101040610d1040400045d012053746f72616765207573656420746f206b65657020747261636b206f6620776869636820636f6e73656e73757320626c6f636b2074686520646f6d61696e2072756e74696d6520757067726164652068617070656e2e54446f6d61696e52756e74696d6555706772616465730100e10404000871012054656d706f726172792073746f72616765206b65657020747261636b206f6620646f6d61696e2072756e74696d6520757067726164652068617070656e20696e207468652063757272656e7420626c6f636b2c20636c65617265648820696e20746865206e65787420626c6f636b20696e697469616c697a6174696f6e2e48446f6d61696e547852616e6765537461746500010406c8e50404000001c10201c44c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e60436f6e73656e737573536c6f7450726f626162696c6974791d024001000000000000000600000000000000048820436f6e73656e73757320636861696e20736c6f742070726f626162696c6974792e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b576569676874282c0b00c809ae2e010200d00004bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e676530200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c3020640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10100002000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e2050616c6c65744964f10420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e3c42756e646c654c6f6e67657669747910100500000004190120486f77206d616e7920626c6f636b20612062756e646c652073686f756c64207374696c6c20636f6e73696465722061732076616c69642061667465722070726f647563656401f5040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010020040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010020040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301002004000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010020040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b01001010000000000001d5030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c657301010402001d0504000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01d90301d804444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0121050d0c4d6d72010c4d6d720c20526f6f74486173680100348000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301003020000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001040630340400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d72012c53756273706163654d6d7204344d6d72526f6f74486173686573000104051034040004a4204d6170206f6620626c6f636b206e756d6265727320746f206d6d7220726f6f74206861736865732e000000001f244d657373656e67657201244d657373656e67657234344e6578744368616e6e656c496401010406e8ec80000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060675022505040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000035050400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040659051804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406590518040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104065d05350504000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104065d05350504000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300003505040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e444d657373616765576569676874546167730000610504000445012053746f7261676520746f2073746f72652074686520776569676874207461677320666f7220616c6c20746865206f7574626f7820616e6420696e626f7820726573706f6e7365206d657373616765732e38436861696e416c6c6f776c69737401000104040004f820416e20616c6c6f776c697374206f6620636861696e7320746861742063616e206f70656e206368616e6e656c2077697468207468697320636861696e2e68446f6d61696e436861696e416c6c6f776c69737455706461746500010406c8fd0304000c890120412073746f7261676520746f2073746f726520616e7920616c6c6f776c697374207570646174657320746f20646f6d61696e2e2054686520757064617465732077696c6c20626520636c656172656420696e20746865206e65787420626c6f636b9501206f6e6365207468652070726576696f757320626c6f636b20686173206120646f6d61696e2062756e646c652c20627574206120656d7074792076616c75652073686f756c64206265206c656674206265636175736520696e2074686520696e76616c696479012065787472696e73696320726f6f742066726175642070726f6f66207468652070726f766572206e65656420746f2067656e657261746520612070726f6f662d6f662d656d7074792d76616c756520666f722074686520646f6d61696e2e01e10301e408444368616e6e656c526573657276654665651840000010632d5ec76b0500000000000000049c204368616e6e656c20726573657276652066656520746f206f70656e2061206368616e6e656c2e644368616e6e656c496e697452657365727665506f7274696f6e7d041000c2eb0b08c420506f7274696f6e206f66204368616e6e656c20726573657276652074616b656e206279207468652070726f746f636f6cfc20696620746865206368616e6e656c20697320696e20696e697420737461746520616e642069732072657175657374656420746f20626520636c6f7365642e0171053c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e7366657273000108060659057505040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406c8184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100f502100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e7366657273010108060679051840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606790518400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e01090401f800017d053d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01110401010100018105648505042848436865636b4e6f6e5a65726f53656e6465729505c040436865636b5370656356657273696f6e99051038436865636b547856657273696f6e9d051030436865636b47656e65736973a1053438436865636b4d6f7274616c697479a5053428436865636b4e6f6e6365ad05c02c436865636b576569676874b105c0604368617267655472616e73616374696f6e5061796d656e74b505c048436865636b53746f72616765416363657373b905c03844697361626c6550616c6c657473bd05c0c105"} \ No newline at end of file diff --git a/indexers/rewards-squid/package.json b/indexers/rewards-squid/package.json deleted file mode 100644 index 2a5e088e3..000000000 --- a/indexers/rewards-squid/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "rewards-squid", - "private": true, - "engines": { - "node": ">=16" - }, - "scripts": { - "build": "rm -rf lib && tsc", - "db:migrate": "npx squid-typeorm-migration apply", - "processor:start": "node lib/processor.js" - }, - "dependencies": { - "@belopash/typeorm-store": "^1.3.0", - "@polkadot/api": "^10.11.2", - "@subsquid/archive-registry": "^3.3.0", - "@subsquid/graphql-server": "^4.5.0", - "@subsquid/ss58": "^2.0.2", - "@subsquid/substrate-processor": "^8.1.1", - "@subsquid/typeorm-migration": "^1.3.0", - "dotenv": "^16.4.4", - "pg": "8.11.3", - "typeorm": "^0.3.20" - }, - "devDependencies": { - "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/substrate-typegen": "^8.0.2", - "@subsquid/typeorm-codegen": "^1.3.3", - "@types/node": "^20.11.17", - "typescript": "^5.3.3" - } -} diff --git a/indexers/rewards-squid/schema.graphql b/indexers/rewards-squid/schema.graphql deleted file mode 100644 index 2d08d4ba8..000000000 --- a/indexers/rewards-squid/schema.graphql +++ /dev/null @@ -1,108 +0,0 @@ -type Account @entity { - "Account address" - id: ID! @index - rewards: [RewardEvent!]! @derivedFrom(field: "account") - nominations: [Nominator!]! @derivedFrom(field: "account") -} - -type DomainEpoch @entity { - id: ID! @index - domainId: Int! @index - epoch: Int! - updatedAt: Int -} - -type Operator @entity { - id: ID! @index - signingKey: String! @index - operatorOwner: String @index - orderingId: Int! @index - currentDomainId: Int - nextDomainId: Int - minimumNominatorStake: BigInt - nominationTax: Int - currentTotalStake: BigInt - currentEpochRewards: BigInt - totalShares: BigInt - nominatorAmount: Int! @index - deposits: [Deposit!]! - @derivedFrom(field: "operator") - @cardinality(value: 1000) - nominators: [Nominator!]! - @derivedFrom(field: "operator") - @cardinality(value: 1000) - status: String - updatedAt: Int @index - operatorRewards: [OperatorRewardEvent!]! - @derivedFrom(field: "operator") - @cardinality(value: 1000) -} - -type Nominator @entity { - id: ID! @index - operator: Operator! - account: Account! - shares: BigInt - status: String! - updatedAt: Int -} - -type OperatorRewardEvent @entity { - id: ID! @index - operator: Operator! - indexInBlock: Int! - name: String! - timestamp: DateTime! @index - blockNumber: Int! @index - extrinsicHash: String @index - amount: BigInt! -} - -type RewardEvent @entity { - id: ID! @index - indexInBlock: Int! - name: String! - timestamp: DateTime! @index - blockNumber: Int! @index - extrinsicHash: String @index - account: Account! - amount: BigInt -} - -type AccountReward @entity { - id: ID! @index - account: Account! - totalRewards: BigInt - block: BigInt - vote: BigInt - operator: BigInt - updatedAt: Int! @index -} - -type OperatorReward @entity { - id: ID! @index - amount: BigInt - updatedAt: Int! -} - -type Deposit @entity { - id: ID! @index - blockNumber: Int! @index - amount: BigInt - operator: Operator! - nominator: Nominator! - nominatorAccount: String! - timestamp: DateTime! @index - extrinsicHash: String @index -} - -type OperatorUnlockedFunds @entity { - id: ID! @index - blockNumber: Int! @index - operator: Operator! - nominator: Nominator! - nominatorAccount: String! - timestamp: DateTime! @index - extrinsicHash: String @index - amount: BigInt -} diff --git a/indexers/rewards-squid/scripts/docker-run.sh b/indexers/rewards-squid/scripts/docker-run.sh deleted file mode 100644 index 1947733d9..000000000 --- a/indexers/rewards-squid/scripts/docker-run.sh +++ /dev/null @@ -1,5 +0,0 @@ -set -e -docker build . --target processor -t squid-processor -# make sure the port matches .env. -# For Linux, add --add-host=host.docker.internal:host-gateway -docker run --rm -e DB_HOST=host.docker.internal --env-file=.env squid-processor \ No newline at end of file diff --git a/indexers/rewards-squid/scripts/install-sqd.sh b/indexers/rewards-squid/scripts/install-sqd.sh deleted file mode 100644 index 91c869fb7..000000000 --- a/indexers/rewards-squid/scripts/install-sqd.sh +++ /dev/null @@ -1,39 +0,0 @@ -#! /bin/bash - -set -e - -if ! command -v sqd &> /dev/null; then - echo "sqd is required but not installed. Proceeding with the rest of the script..." -else - NODE_VERSION=20.11.1 - - mkdir -p ~/{opt,src,bin} - cd ~/src - wget -S https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz - tar xvf node-v${NODE_VERSION}-linux-x64.tar.xz -C ~/opt - - cd ~/bin - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/node node - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/npm npm - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/npx npx - - npm i -g @subsquid/cli@latest - - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/sqd sqd - - echo "export PATH=$HOME/bin:$PATH" >> ~/.bash_profile - echo 'export NODE_OPTIONS="--max-old-space-size=4096"' >> ~/.bash_profile - - cd ~/ - git clone https://github.com/autonomys/astral.git - - ln -s astral/rewards-squid rewards-squid - - cd rewards-squid - npm ci - sqd up - sqd build - cp -rf .env.sample .env - export NODE_OPTIONS="--max-old-space-size=4096" - nohup sqd run -f .env . & -fi diff --git a/indexers/rewards-squid/scripts/sub-client.js b/indexers/rewards-squid/scripts/sub-client.js deleted file mode 100644 index a9fdfbc31..000000000 --- a/indexers/rewards-squid/scripts/sub-client.js +++ /dev/null @@ -1,37 +0,0 @@ -const WebSocket = require('ws') -const { createClient } = require('graphql-ws'); - -const port = process.env.GQL_PORT || 4350 -const host = process.env.GQL_HOST || 'localhost' -const proto = process.env.GQL_PROTO || 'ws' - - -const client = createClient({ - webSocketImpl: WebSocket, - url: `${proto}://${host}:${port}/graphql`, -}); - -client.subscribe( - { - query: ` - subscription { - operators(limit: 5, orderBy: updatedAt_DESC) { - id - signingKey - operatorOwner - } - } - `, - }, - { - next: (data) => { - console.log(`New operators: ${JSON.stringify(data)}`); - }, - error: (error) => { - console.error('error', error); - }, - complete: () => { - console.log('done!'); - }, - } -); \ No newline at end of file diff --git a/indexers/rewards-squid/squid.yaml b/indexers/rewards-squid/squid.yaml deleted file mode 100644 index 1fe1fd8a5..000000000 --- a/indexers/rewards-squid/squid.yaml +++ /dev/null @@ -1,18 +0,0 @@ -manifestVersion: subsquid.io/v0.1 -name: rewards-squid -version: 1 -description: Substrate squid template -build: -deploy: - addons: - postgres: - processor: - cmd: - - sqd - - process:prod - env: - RPC_ENDPOINT: ${{ secrets.RPC_ENDPOINT }} - api: - cmd: - - sqd - - serve:prod diff --git a/indexers/rewards-squid/src/blocks/constants.ts b/indexers/rewards-squid/src/blocks/constants.ts deleted file mode 100644 index 0c3db7faa..000000000 --- a/indexers/rewards-squid/src/blocks/constants.ts +++ /dev/null @@ -1,16 +0,0 @@ -export const CONFIG = { - prefix: 2254, -}; - -export const PREFIX = 2254; - -export const TYPES = { - Solution: { - public_key: "AccountId32", - reward_address: "AccountId32", - }, - SubPreDigest: { - slot: "u64", - solution: "Solution", - }, -}; diff --git a/indexers/rewards-squid/src/blocks/utils.ts b/indexers/rewards-squid/src/blocks/utils.ts deleted file mode 100644 index 46e510504..000000000 --- a/indexers/rewards-squid/src/blocks/utils.ts +++ /dev/null @@ -1,434 +0,0 @@ -import { StoreWithCache } from "@belopash/typeorm-store"; -import * as ss58 from "@subsquid/ss58"; -import { randomUUID } from "crypto"; -import { - Account, - AccountReward, - Deposit, - DomainEpoch, - Nominator, - Operator, - OperatorReward, - OperatorRewardEvent, - OperatorUnlockedFunds, - RewardEvent, -} from "../model"; -import { Block, BlockHeader, Event, ProcessorContext } from "../processor"; -import { events } from "../types"; -import { domains } from "../types/storage"; -import { CONFIG } from "./constants"; - -/** - * - * @param id - * @returns substrate account address properly encoded - */ -export function encodeId(id: Uint8Array | string) { - if (id === "") return ""; - return ss58.codec(CONFIG.prefix).encode(id); -} - -/** - * - * @param ctx - * @param api - * @returns - */ -export async function getOrCreateOperator( - ctx: ProcessorContext, - header: BlockHeader, - operatorId: bigint -): Promise { - let operator = await ctx.store.get(Operator, operatorId.toString()); - - if (!operator) { - let operatorInfo; - - if (domains.operators.v0.is(header)) { - operatorInfo = await domains.operators.v0.get(header, operatorId); - } else if (domains.operators.v1.is(header)) { - operatorInfo = await domains.operators.v1.get(header, operatorId); - } else if (domains.operators.v3.is(header)) { - operatorInfo = await domains.operators.v3.get(header, operatorId); - } - - const nominatorsLength = await domains.nominatorCount.v0.get( - header, - operatorId - ); - - const ownerAccount = await domains.operatorIdOwner.v0.get( - header, - operatorId - ); - - const encodedOwnerAccount = ownerAccount ? encodeId(ownerAccount) : ""; - - if (operatorInfo) { - operator = new Operator({ - id: operatorId.toString(), - orderingId: Number(operatorId), - operatorOwner: encodedOwnerAccount, - status: JSON.stringify(operatorInfo.status), - signingKey: operatorInfo.signingKey, - totalShares: operatorInfo.currentTotalShares, - currentEpochRewards: operatorInfo.currentEpochRewards, - currentTotalStake: operatorInfo.currentTotalStake, - nominatorAmount: nominatorsLength || 0, - nominationTax: operatorInfo.nominationTax, - minimumNominatorStake: operatorInfo.minimumNominatorStake, - nextDomainId: operatorInfo.nextDomainId, - currentDomainId: operatorInfo.currentDomainId, - updatedAt: header.height, - }); - - await ctx.store.insert(operator); - } - } - - return operator; -} - -export async function getOrCreateNominator( - ctx: ProcessorContext, - header: BlockHeader, - operatorId: bigint, - nominatorId: string -): Promise { - const operatorIdStr = operatorId.toString(); - const encodedNominatorId = encodeId(nominatorId); - const operator = await getOrCreateOperator(ctx, header, operatorId); - - let nominator = await ctx.store.get( - Nominator, - `${operatorIdStr}-${encodedNominatorId}` - ); - - if (!nominator) { - const nominatorInfo = await domains.deposits.v1.get( - header, - operatorId, - nominatorId - ); - - const account = await getOrCreateAccount(ctx, nominatorId); - - nominator = new Nominator({ - id: `${operatorIdStr}-${encodedNominatorId}`, - operator: operator, - account: account, - shares: BigInt(nominatorInfo?.known.shares || 0), - status: "Registered", - updatedAt: header.height, - }); - - await ctx.store.insert(nominator); - } - - return nominator; -} - -export async function getOrCreateAccount( - ctx: ProcessorContext, - accountId: string -): Promise { - const encodedAccountId = encodeId(accountId); - let account = await ctx.store.get(Account, encodedAccountId); - - if (!account) { - account = new Account({ - id: encodedAccountId, - }); - - await ctx.store.insert(account); - } - - return account; -} - -export async function updateOperatorStatus( - ctx: ProcessorContext, - operatorId: bigint, - header: BlockHeader -) { - const operator = await ctx.store.get(Operator, operatorId.toString()); - let operatorInfo; - - if (domains.operators.v0.is(header)) { - operatorInfo = await domains.operators.v0.get(header, operatorId); - } else if (domains.operators.v1.is(header)) { - operatorInfo = await domains.operators.v1.get(header, operatorId); - } else if (domains.operators.v3.is(header)) { - operatorInfo = await domains.operators.v3.get(header, operatorId); - } - const nominatorCount = await domains.nominatorCount.v0.get( - header, - operatorId - ); - - if (operator && operatorInfo) { - operator.currentDomainId = operatorInfo.currentDomainId; - operator.nominatorAmount = nominatorCount - ? nominatorCount - : operator.nominatorAmount; - operator.currentTotalStake = operatorInfo.currentTotalStake; - operator.totalShares = operatorInfo.currentTotalShares; - operator.nextDomainId = operatorInfo.nextDomainId; - operator.currentEpochRewards = operatorInfo.currentEpochRewards; - operator.status = JSON.stringify(operatorInfo.status); - operator.updatedAt = header.height; - await ctx.store.save(operator); - } -} - -export async function updateOperatorStakes( - ctx: ProcessorContext, - operatorId: bigint, - header: BlockHeader -) { - const operator = await ctx.store.get(Operator, operatorId.toString()); - let operatorInfo; - - if (domains.operators.v0.is(header)) { - operatorInfo = await domains.operators.v0.get(header, operatorId); - } else if (domains.operators.v1.is(header)) { - operatorInfo = await domains.operators.v1.get(header, operatorId); - } else if (domains.operators.v3.is(header)) { - operatorInfo = await domains.operators.v3.get(header, operatorId); - } - const nominatorsLength = await domains.nominatorCount.v0.get( - header, - operatorId - ); - - if (operator && operatorInfo) { - operator.nominatorAmount = nominatorsLength - ? nominatorsLength - : operator.nominatorAmount; - operator.currentTotalStake = operatorInfo.currentTotalStake; - operator.totalShares = operatorInfo.currentTotalShares; - operator.updatedAt = header.height; - await ctx.store.save(operator); - } -} - -export async function updateOperatorRewards( - ctx: ProcessorContext, - block: Block, - event: Event -) { - const operatorEvents: OperatorRewardEvent[] = []; - - const { operatorId, reward } = - events.domains.operatorRewarded.v0.decode(event); - - const operator = await ctx.store.get(Operator, operatorId.toString()); - - if (operator) { - const operatorReward = new OperatorRewardEvent({ - id: event.id, - indexInBlock: event.index, - name: event.name, - timestamp: new Date(block.header.timestamp || 0), - blockNumber: block.header.height, - extrinsicHash: event.extrinsic?.hash, - amount: reward, - operator: operator, - }); - - operatorEvents.push(operatorReward); - } - - return operatorEvents; -} - -export async function updateEpochCompleted(header: BlockHeader, event: Event) { - const { domainId, completedEpochIndex } = - events.domains.domainEpochCompleted.v0.decode(event); - - const domainEpoch = new DomainEpoch({ - id: randomUUID(), - domainId: domainId, - epoch: completedEpochIndex, - updatedAt: header.height, - }); - - return domainEpoch; -} - -export async function updateOperatorStake( - ctx: ProcessorContext, - header: BlockHeader, - event: Event -) { - const { operatorId, nominatorId, amount } = - events.domains.storageFeeDeposited.v1.decode(event); - - const nominator = await getOrCreateNominator( - ctx, - header, - operatorId, - nominatorId - ); - - const deposit = new Deposit({ - id: event.id, - blockNumber: header.height, - timestamp: new Date(header.timestamp || 0), - extrinsicHash: event.extrinsic?.hash, - amount: amount, - operator: nominator.operator, - nominator: nominator, - nominatorAccount: encodeId(event.args?.nominatorId), - }); - - if (deposit) { - await ctx.store.save(deposit); - } -} - -export async function updateWithdrewStake( - ctx: ProcessorContext, - header: BlockHeader, - event: Event -) { - const { operatorId, nominatorId } = - events.domains.withdrewStake.v0.decode(event); - - const encodedNominatorId = encodeId(nominatorId); - - const operator = await ctx.store.get(Operator, operatorId.toString()); - let operatorInfo; - - if (domains.operators.v0.is(header)) { - operatorInfo = await domains.operators.v0.get(header, operatorId); - } else if (domains.operators.v1.is(header)) { - operatorInfo = await domains.operators.v1.get(header, operatorId); - } else if (domains.operators.v3.is(header)) { - operatorInfo = await domains.operators.v3.get(header, operatorId); - } - const nominator = await ctx.store.get( - Nominator, - `${operatorId}-${encodedNominatorId}` - ); - const nominatorCount = await domains.nominatorCount.v0.get( - header, - operatorId - ); - - if (operator && operatorInfo) { - operator.nominatorAmount = nominatorCount ? nominatorCount : 0; - operator.currentTotalStake = operatorInfo.currentTotalStake; - operator.totalShares = operatorInfo.currentTotalShares; - operator.currentEpochRewards = operatorInfo.currentEpochRewards; - operator.status = JSON.stringify(operatorInfo.status); - operator.updatedAt = header.height; - - await ctx.store.save(operator); - } - - if (operator && nominator) { - const newNominator = new Nominator({ - ...nominator, - status: "Stake Withdrawn", - updatedAt: header.height, - }); - await ctx.store.save(newNominator); - } -} - -export async function processRewardEvent( - ctx: ProcessorContext, - header: BlockHeader, - event: Event -) { - const address = event.args?.voter || event.args?.blockAuthor; - - const account = await getOrCreateAccount(ctx, address); - - const reward = BigInt(event.args.reward); - - const rewardEvent = new RewardEvent({ - id: event.id, - indexInBlock: event.index, - name: event.name, - account, - timestamp: new Date(header.timestamp || 0), - blockNumber: header.height, - extrinsicHash: event.extrinsic?.hash, - amount: reward, - }); - - return rewardEvent; -} - -export async function getOrCreateAccountRewards( - ctx: ProcessorContext, - header: BlockHeader, - account: Account -): Promise { - let accountReward = await ctx.store.get(AccountReward, account.id); - - if (!accountReward) { - accountReward = new AccountReward({ - id: account.id, - account: account, - vote: BigInt(0), - block: BigInt(0), - operator: BigInt(0), - totalRewards: BigInt(0), - updatedAt: header.height, - }); - } - - return accountReward; -} - -export async function getOrCreateOperatorRewards( - ctx: ProcessorContext, - header: BlockHeader, - operator: Operator -): Promise { - let operatorReward = await ctx.store.get(OperatorReward, operator.id); - - if (!operatorReward) { - operatorReward = new OperatorReward({ - id: operator.id, - amount: BigInt(0), - updatedAt: header.height, - }); - } - - return operatorReward; -} - -export async function updateOperatorFundsUnlocked( - ctx: ProcessorContext, - header: BlockHeader, - event: Event -) { - const { operatorId, nominatorId, amount } = - events.domains.fundsUnlocked.v0.decode(event); - - const nominator = await getOrCreateNominator( - ctx, - header, - operatorId, - nominatorId - ); - - const unlockedFund = new OperatorUnlockedFunds({ - id: event.id, - blockNumber: header.height, - timestamp: new Date(header.timestamp || 0), - extrinsicHash: event.extrinsic?.hash, - nominatorAccount: encodeId(event.args?.nominatorId), - amount: amount, - operator: nominator.operator, - nominator: nominator, - }); - - if (unlockedFund) { - await ctx.store.save(unlockedFund); - } -} diff --git a/indexers/rewards-squid/src/config.ts b/indexers/rewards-squid/src/config.ts deleted file mode 100644 index 574631943..000000000 --- a/indexers/rewards-squid/src/config.ts +++ /dev/null @@ -1,8 +0,0 @@ -export const PROCESSOR_CONFIG = { - chainName: "gemini-3g", - prefix: 2254, - dataSource: { - chain: process.env.CHAIN_RPC_ENDPOINT as string, - }, - typesBundle: "gemini-3g", -}; diff --git a/indexers/rewards-squid/src/main.ts b/indexers/rewards-squid/src/main.ts deleted file mode 100644 index 34554e21e..000000000 --- a/indexers/rewards-squid/src/main.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { - StoreWithCache, - TypeormDatabaseWithCache, -} from "@belopash/typeorm-store"; -import { - getOrCreateOperator, - processRewardEvent, - updateEpochCompleted, - updateOperatorFundsUnlocked, - updateOperatorRewards, - updateOperatorStake, - updateOperatorStatus, - updateWithdrewStake, -} from "./blocks/utils"; -import { DomainEpoch, OperatorRewardEvent, RewardEvent } from "./model"; -import { ProcessorContext, processor } from "./processor"; -import { events } from "./types"; - -processor.run( - new TypeormDatabaseWithCache({ supportHotBlocks: true }), - async (ctx) => { - let rewards = await getOperatorEvents(ctx); - - await ctx.store.save([...rewards.operatorEvents]); - await ctx.store.save([...rewards.rewardEvents]); - await ctx.store.save([...rewards.domainEpochEvents]); - } -); - -type Rewards = { - rewardEvents: RewardEvent[]; - operatorEvents: OperatorRewardEvent[]; - domainEpochEvents: DomainEpoch[]; -}; - -async function getOperatorEvents( - ctx: ProcessorContext -): Promise { - const rewardEvents: RewardEvent[] = []; - const operatorEvents: OperatorRewardEvent[] = []; - const domainEpochEvents: DomainEpoch[] = []; - - for (let block of ctx.blocks) { - for (let event of block.events) { - switch (event.name) { - case events.domains.domainEpochCompleted.name: - const domainEpochEvent = await updateEpochCompleted( - block.header, - event - ); - domainEpochEvents.push(domainEpochEvent); - break; - case events.domains.operatorRegistered.name: - const rec = events.domains.operatorRegistered.v0.decode(event); - await getOrCreateOperator(ctx, block.header, rec.operatorId); - break; - case events.domains.operatorDeregistered.name: - const operatorDeregistered = - events.domains.operatorDeregistered.v0.decode(event); - await updateOperatorStatus( - ctx, - operatorDeregistered.operatorId, - block.header - ); - break; - case events.domains.operatorSlashed.name: - const operatorSlashed = - events.domains.operatorSlashed.v0.decode(event); - await updateOperatorStatus( - ctx, - operatorSlashed.operatorId, - block.header - ); - break; - case events.domains.storageFeeDeposited.name: - await updateOperatorStake(ctx, block.header, event); - break; - case events.domains.withdrewStake.name: - await updateWithdrewStake(ctx, block.header, event); - break; - case events.domains.operatorRewarded.name: - const operatorRewardEvents = await updateOperatorRewards( - ctx, - block, - event - ); - operatorEvents.push(...operatorRewardEvents); - break; - case events.domains.fundsUnlocked.name: - await updateOperatorFundsUnlocked(ctx, block.header, event); - break; - case events.rewards.blockReward.name: - case events.rewards.voteReward.name: - const rewardEvent = await processRewardEvent( - ctx, - block.header, - event - ); - rewardEvents.push(rewardEvent); - break; - default: - break; - } - } - } - - return { rewardEvents, operatorEvents, domainEpochEvents }; -} diff --git a/indexers/rewards-squid/src/model/generated/account.model.ts b/indexers/rewards-squid/src/model/generated/account.model.ts deleted file mode 100644 index a01de3deb..000000000 --- a/indexers/rewards-squid/src/model/generated/account.model.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, OneToMany as OneToMany_} from "typeorm" -import {RewardEvent} from "./rewardEvent.model" -import {Nominator} from "./nominator.model" - -@Entity_() -export class Account { - constructor(props?: Partial) { - Object.assign(this, props) - } - - /** - * Account address - */ - @PrimaryColumn_() - id!: string - - @OneToMany_(() => RewardEvent, e => e.account) - rewards!: RewardEvent[] - - @OneToMany_(() => Nominator, e => e.account) - nominations!: Nominator[] -} diff --git a/indexers/rewards-squid/src/model/generated/accountReward.model.ts b/indexers/rewards-squid/src/model/generated/accountReward.model.ts deleted file mode 100644 index e4a16c269..000000000 --- a/indexers/rewards-squid/src/model/generated/accountReward.model.ts +++ /dev/null @@ -1,33 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, ManyToOne as ManyToOne_, Index as Index_} from "typeorm" -import * as marshal from "./marshal" -import {Account} from "./account.model" - -@Entity_() -export class AccountReward { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @ManyToOne_(() => Account, {nullable: true}) - account!: Account - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - totalRewards!: bigint | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - block!: bigint | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - vote!: bigint | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - operator!: bigint | undefined | null - - @Index_() - @Column_("int4", {nullable: false}) - updatedAt!: number -} diff --git a/indexers/rewards-squid/src/model/generated/deposit.model.ts b/indexers/rewards-squid/src/model/generated/deposit.model.ts deleted file mode 100644 index ac69b3ff2..000000000 --- a/indexers/rewards-squid/src/model/generated/deposit.model.ts +++ /dev/null @@ -1,40 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, ManyToOne as ManyToOne_} from "typeorm" -import * as marshal from "./marshal" -import {Operator} from "./operator.model" -import {Nominator} from "./nominator.model" - -@Entity_() -export class Deposit { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("int4", {nullable: false}) - blockNumber!: number - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - amount!: bigint | undefined | null - - @Index_() - @ManyToOne_(() => Operator, {nullable: true}) - operator!: Operator - - @Index_() - @ManyToOne_(() => Nominator, {nullable: true}) - nominator!: Nominator - - @Column_("text", {nullable: false}) - nominatorAccount!: string - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("text", {nullable: true}) - extrinsicHash!: string | undefined | null -} diff --git a/indexers/rewards-squid/src/model/generated/domainEpoch.model.ts b/indexers/rewards-squid/src/model/generated/domainEpoch.model.ts deleted file mode 100644 index a6912eb2b..000000000 --- a/indexers/rewards-squid/src/model/generated/domainEpoch.model.ts +++ /dev/null @@ -1,21 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_} from "typeorm" - -@Entity_() -export class DomainEpoch { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("int4", {nullable: false}) - domainId!: number - - @Column_("int4", {nullable: false}) - epoch!: number - - @Column_("int4", {nullable: true}) - updatedAt!: number | undefined | null -} diff --git a/indexers/rewards-squid/src/model/generated/index.ts b/indexers/rewards-squid/src/model/generated/index.ts deleted file mode 100644 index d7bd55654..000000000 --- a/indexers/rewards-squid/src/model/generated/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -export * from "./account.model" -export * from "./domainEpoch.model" -export * from "./operator.model" -export * from "./nominator.model" -export * from "./operatorRewardEvent.model" -export * from "./rewardEvent.model" -export * from "./accountReward.model" -export * from "./operatorReward.model" -export * from "./deposit.model" -export * from "./operatorUnlockedFunds.model" diff --git a/indexers/rewards-squid/src/model/generated/marshal.ts b/indexers/rewards-squid/src/model/generated/marshal.ts deleted file mode 100644 index eaf8d36a8..000000000 --- a/indexers/rewards-squid/src/model/generated/marshal.ts +++ /dev/null @@ -1,179 +0,0 @@ -import assert from 'assert' - - -export interface Marshal { - fromJSON(value: unknown): T - toJSON(value: T): S -} - - -export const string: Marshal = { - fromJSON(value: unknown): string { - assert(typeof value === 'string', 'invalid String') - return value - }, - toJSON(value) { - return value - } -} - - -export const id = string - - -export const int: Marshal = { - fromJSON(value: unknown): number { - assert(Number.isInteger(value), 'invalid Int') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const float: Marshal = { - fromJSON(value: unknown): number { - assert(typeof value === 'number', 'invalid Float') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const boolean: Marshal = { - fromJSON(value: unknown): boolean { - assert(typeof value === 'boolean', 'invalid Boolean') - return value - }, - toJSON(value: boolean): boolean { - return value - } -} - - -export const bigint: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigInt') - return BigInt(value) - }, - toJSON(value: bigint): string { - return value.toString() - } -} - - -export const bigdecimal: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigDecimal') - return decimal.BigDecimal(value) - }, - toJSON(value: any): string { - return value.toString() - } -} - - -// credit - https://github.com/Urigo/graphql-scalars/blob/91b4ea8df891be8af7904cf84751930cc0c6613d/src/scalars/iso-date/validator.ts#L122 -const RFC_3339_REGEX = - /^(\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60))(\.\d{1,})?([Z])$/ - - -function isIsoDateTimeString(s: string): boolean { - return RFC_3339_REGEX.test(s) -} - - -export const datetime: Marshal = { - fromJSON(value: unknown): Date { - assert(typeof value === 'string', 'invalid DateTime') - assert(isIsoDateTimeString(value), 'invalid DateTime') - return new Date(value) - }, - toJSON(value: Date): string { - return value.toISOString() - } -} - - -export const bytes: Marshal = { - fromJSON(value: unknown): Buffer { - assert(typeof value === 'string', 'invalid Bytes') - assert(value.length % 2 === 0, 'invalid Bytes') - assert(/^0x[0-9a-f]+$/i.test(value), 'invalid Bytes') - return Buffer.from(value.slice(2), 'hex') - }, - toJSON(value: Uint8Array): string { - if (Buffer.isBuffer(value)) { - return '0x' + value.toString('hex') - } else { - return '0x' + Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString('hex') - } - } -} - - -export function fromList(list: unknown, f: (val: unknown) => T): T[] { - assert(Array.isArray(list)) - return list.map((val) => f(val)) -} - - -export function nonNull(val: T | undefined | null): T { - assert(val != null, 'non-nullable value is null') - return val -} - - -export const bigintTransformer = { - to(x?: bigint) { - return x?.toString() - }, - from(s?: string): bigint | undefined { - return s == null ? undefined : BigInt(s) - } -} - - -export const floatTransformer = { - to(x?: number) { - return x?.toString() - }, - from(s?: string): number | undefined { - return s == null ? undefined : Number(s) - } -} - - -export const bigdecimalTransformer = { - to(x?: any) { - return x?.toString() - }, - from(s?: any): any | undefined { - return s == null ? undefined : decimal.BigDecimal(s) - } -} - - -export function enumFromJson(json: unknown, enumObject: E): E[keyof E] { - assert(typeof json == 'string', 'invalid enum value') - let val = (enumObject as any)[json] - assert(typeof val == 'string', `invalid enum value`) - return val as any -} - - -const decimal = { - get BigDecimal(): any { - throw new Error('Package `@subsquid/big-decimal` is not installed') - } -} - - -try { - Object.defineProperty(decimal, "BigDecimal", { - value: require('@subsquid/big-decimal').BigDecimal - }) -} catch (e) {} diff --git a/indexers/rewards-squid/src/model/generated/nominator.model.ts b/indexers/rewards-squid/src/model/generated/nominator.model.ts deleted file mode 100644 index b539d0bfc..000000000 --- a/indexers/rewards-squid/src/model/generated/nominator.model.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, ManyToOne as ManyToOne_, Index as Index_} from "typeorm" -import * as marshal from "./marshal" -import {Operator} from "./operator.model" -import {Account} from "./account.model" - -@Entity_() -export class Nominator { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @ManyToOne_(() => Operator, {nullable: true}) - operator!: Operator - - @Index_() - @ManyToOne_(() => Account, {nullable: true}) - account!: Account - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - shares!: bigint | undefined | null - - @Column_("text", {nullable: false}) - status!: string - - @Column_("int4", {nullable: true}) - updatedAt!: number | undefined | null -} diff --git a/indexers/rewards-squid/src/model/generated/operator.model.ts b/indexers/rewards-squid/src/model/generated/operator.model.ts deleted file mode 100644 index a97953f53..000000000 --- a/indexers/rewards-squid/src/model/generated/operator.model.ts +++ /dev/null @@ -1,68 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, OneToMany as OneToMany_} from "typeorm" -import * as marshal from "./marshal" -import {Deposit} from "./deposit.model" -import {Nominator} from "./nominator.model" -import {OperatorRewardEvent} from "./operatorRewardEvent.model" - -@Entity_() -export class Operator { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("text", {nullable: false}) - signingKey!: string - - @Index_() - @Column_("text", {nullable: true}) - operatorOwner!: string | undefined | null - - @Index_() - @Column_("int4", {nullable: false}) - orderingId!: number - - @Column_("int4", {nullable: true}) - currentDomainId!: number | undefined | null - - @Column_("int4", {nullable: true}) - nextDomainId!: number | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - minimumNominatorStake!: bigint | undefined | null - - @Column_("int4", {nullable: true}) - nominationTax!: number | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - currentTotalStake!: bigint | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - currentEpochRewards!: bigint | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - totalShares!: bigint | undefined | null - - @Index_() - @Column_("int4", {nullable: false}) - nominatorAmount!: number - - @OneToMany_(() => Deposit, e => e.operator) - deposits!: Deposit[] - - @OneToMany_(() => Nominator, e => e.operator) - nominators!: Nominator[] - - @Column_("text", {nullable: true}) - status!: string | undefined | null - - @Index_() - @Column_("int4", {nullable: true}) - updatedAt!: number | undefined | null - - @OneToMany_(() => OperatorRewardEvent, e => e.operator) - operatorRewards!: OperatorRewardEvent[] -} diff --git a/indexers/rewards-squid/src/model/generated/operatorReward.model.ts b/indexers/rewards-squid/src/model/generated/operatorReward.model.ts deleted file mode 100644 index 8513effc5..000000000 --- a/indexers/rewards-squid/src/model/generated/operatorReward.model.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_} from "typeorm" -import * as marshal from "./marshal" - -@Entity_() -export class OperatorReward { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - amount!: bigint | undefined | null - - @Column_("int4", {nullable: false}) - updatedAt!: number -} diff --git a/indexers/rewards-squid/src/model/generated/operatorRewardEvent.model.ts b/indexers/rewards-squid/src/model/generated/operatorRewardEvent.model.ts deleted file mode 100644 index faf273f2a..000000000 --- a/indexers/rewards-squid/src/model/generated/operatorRewardEvent.model.ts +++ /dev/null @@ -1,38 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, ManyToOne as ManyToOne_, Index as Index_} from "typeorm" -import * as marshal from "./marshal" -import {Operator} from "./operator.model" - -@Entity_() -export class OperatorRewardEvent { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @ManyToOne_(() => Operator, {nullable: true}) - operator!: Operator - - @Column_("int4", {nullable: false}) - indexInBlock!: number - - @Column_("text", {nullable: false}) - name!: string - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("int4", {nullable: false}) - blockNumber!: number - - @Index_() - @Column_("text", {nullable: true}) - extrinsicHash!: string | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - amount!: bigint -} diff --git a/indexers/rewards-squid/src/model/generated/operatorUnlockedFunds.model.ts b/indexers/rewards-squid/src/model/generated/operatorUnlockedFunds.model.ts deleted file mode 100644 index 833c1dc68..000000000 --- a/indexers/rewards-squid/src/model/generated/operatorUnlockedFunds.model.ts +++ /dev/null @@ -1,40 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, ManyToOne as ManyToOne_} from "typeorm" -import * as marshal from "./marshal" -import {Operator} from "./operator.model" -import {Nominator} from "./nominator.model" - -@Entity_() -export class OperatorUnlockedFunds { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("int4", {nullable: false}) - blockNumber!: number - - @Index_() - @ManyToOne_(() => Operator, {nullable: true}) - operator!: Operator - - @Index_() - @ManyToOne_(() => Nominator, {nullable: true}) - nominator!: Nominator - - @Column_("text", {nullable: false}) - nominatorAccount!: string - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("text", {nullable: true}) - extrinsicHash!: string | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - amount!: bigint | undefined | null -} diff --git a/indexers/rewards-squid/src/model/generated/rewardEvent.model.ts b/indexers/rewards-squid/src/model/generated/rewardEvent.model.ts deleted file mode 100644 index 83a1a1e7f..000000000 --- a/indexers/rewards-squid/src/model/generated/rewardEvent.model.ts +++ /dev/null @@ -1,38 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, ManyToOne as ManyToOne_} from "typeorm" -import * as marshal from "./marshal" -import {Account} from "./account.model" - -@Entity_() -export class RewardEvent { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Column_("int4", {nullable: false}) - indexInBlock!: number - - @Column_("text", {nullable: false}) - name!: string - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("int4", {nullable: false}) - blockNumber!: number - - @Index_() - @Column_("text", {nullable: true}) - extrinsicHash!: string | undefined | null - - @Index_() - @ManyToOne_(() => Account, {nullable: true}) - account!: Account - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - amount!: bigint | undefined | null -} diff --git a/indexers/rewards-squid/src/model/index.ts b/indexers/rewards-squid/src/model/index.ts deleted file mode 100644 index 73bfb2881..000000000 --- a/indexers/rewards-squid/src/model/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./generated" diff --git a/indexers/rewards-squid/src/processor.ts b/indexers/rewards-squid/src/processor.ts deleted file mode 100644 index 3538f8303..000000000 --- a/indexers/rewards-squid/src/processor.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { - DataHandlerContext, - SubstrateBatchProcessor, - SubstrateBatchProcessorFields, - Block as _Block, - BlockHeader as _BlockHeader, - Call as _Call, - Event as _Event, - Extrinsic as _Extrinsic, -} from "@subsquid/substrate-processor"; -import { assertNotNull } from "@subsquid/util-internal"; - -import { events } from "./types"; - -export const processor = new SubstrateBatchProcessor() - .setRpcEndpoint({ - url: assertNotNull(process.env.RPC_ENDPOINT), - rateLimit: 10, - }) - .setBlockRange({ from: 0 }) - .addEvent({ - name: [ - events.domains.storageFeeDeposited.name, - events.domains.operatorRegistered.name, - events.domains.operatorDeregistered.name, - events.domains.operatorNominated.name, - events.domains.operatorRewarded.name, - events.domains.operatorSlashed.name, - events.domains.domainEpochCompleted.name, - events.domains.withdrewStake.name, - events.rewards.blockReward.name, - events.rewards.voteReward.name, - ], - extrinsic: true, - }) - .setFields({ - event: { - args: true, - }, - extrinsic: { - hash: true, - fee: true, - }, - block: { - timestamp: true, - }, - }); -// Uncomment to disable RPC ingestion and drastically reduce no of RPC calls -//.useArchiveOnly() - -export type Fields = SubstrateBatchProcessorFields; -export type BlockHeader = _BlockHeader; -export type Block = _Block; -export type Event = _Event; -export type Call = _Call; -export type Extrinsic = _Extrinsic; -export type ProcessorContext = DataHandlerContext; diff --git a/indexers/rewards-squid/src/types/balances/calls.ts b/indexers/rewards-squid/src/types/balances/calls.ts deleted file mode 100644 index 906f6aa15..000000000 --- a/indexers/rewards-squid/src/types/balances/calls.ts +++ /dev/null @@ -1,100 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transferAllowDeath = { - name: 'Balances.transfer_allow_death', - /** - * See [`Pallet::transfer_allow_death`]. - */ - v0: new CallType( - 'Balances.transfer_allow_death', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const forceTransfer = { - name: 'Balances.force_transfer', - /** - * See [`Pallet::force_transfer`]. - */ - v0: new CallType( - 'Balances.force_transfer', - sts.struct({ - source: v0.MultiAddress, - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferKeepAlive = { - name: 'Balances.transfer_keep_alive', - /** - * See [`Pallet::transfer_keep_alive`]. - */ - v0: new CallType( - 'Balances.transfer_keep_alive', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferAll = { - name: 'Balances.transfer_all', - /** - * See [`Pallet::transfer_all`]. - */ - v0: new CallType( - 'Balances.transfer_all', - sts.struct({ - dest: v0.MultiAddress, - keepAlive: sts.boolean(), - }) - ), -} - -export const forceUnreserve = { - name: 'Balances.force_unreserve', - /** - * See [`Pallet::force_unreserve`]. - */ - v0: new CallType( - 'Balances.force_unreserve', - sts.struct({ - who: v0.MultiAddress, - amount: sts.bigint(), - }) - ), -} - -export const upgradeAccounts = { - name: 'Balances.upgrade_accounts', - /** - * See [`Pallet::upgrade_accounts`]. - */ - v0: new CallType( - 'Balances.upgrade_accounts', - sts.struct({ - who: sts.array(() => v0.AccountId32), - }) - ), -} - -export const forceSetBalance = { - name: 'Balances.force_set_balance', - /** - * See [`Pallet::force_set_balance`]. - */ - v0: new CallType( - 'Balances.force_set_balance', - sts.struct({ - who: v0.MultiAddress, - newFree: sts.bigint(), - }) - ), -} diff --git a/indexers/rewards-squid/src/types/balances/constants.ts b/indexers/rewards-squid/src/types/balances/constants.ts deleted file mode 100644 index 5cab2c7e3..000000000 --- a/indexers/rewards-squid/src/types/balances/constants.ts +++ /dev/null @@ -1,59 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const existentialDeposit = { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - */ - v0: new ConstantType( - 'Balances.ExistentialDeposit', - sts.bigint() - ), -} - -export const maxLocks = { - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - */ - v0: new ConstantType( - 'Balances.MaxLocks', - sts.number() - ), -} - -export const maxReserves = { - /** - * The maximum number of named reserves that can exist on an account. - */ - v0: new ConstantType( - 'Balances.MaxReserves', - sts.number() - ), -} - -export const maxHolds = { - /** - * The maximum number of holds that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxHolds', - sts.number() - ), -} - -export const maxFreezes = { - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxFreezes', - sts.number() - ), -} diff --git a/indexers/rewards-squid/src/types/balances/events.ts b/indexers/rewards-squid/src/types/balances/events.ts deleted file mode 100644 index da33447db..000000000 --- a/indexers/rewards-squid/src/types/balances/events.ts +++ /dev/null @@ -1,298 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const endowed = { - name: 'Balances.Endowed', - /** - * An account was created with some free balance. - */ - v0: new EventType( - 'Balances.Endowed', - sts.struct({ - account: v0.AccountId32, - freeBalance: sts.bigint(), - }) - ), -} - -export const dustLost = { - name: 'Balances.DustLost', - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ - v0: new EventType( - 'Balances.DustLost', - sts.struct({ - account: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const transfer = { - name: 'Balances.Transfer', - /** - * Transfer succeeded. - */ - v0: new EventType( - 'Balances.Transfer', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const balanceSet = { - name: 'Balances.BalanceSet', - /** - * A balance was set by root. - */ - v0: new EventType( - 'Balances.BalanceSet', - sts.struct({ - who: v0.AccountId32, - free: sts.bigint(), - }) - ), -} - -export const reserved = { - name: 'Balances.Reserved', - /** - * Some balance was reserved (moved from free to reserved). - */ - v0: new EventType( - 'Balances.Reserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unreserved = { - name: 'Balances.Unreserved', - /** - * Some balance was unreserved (moved from reserved to free). - */ - v0: new EventType( - 'Balances.Unreserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const reserveRepatriated = { - name: 'Balances.ReserveRepatriated', - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ - v0: new EventType( - 'Balances.ReserveRepatriated', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - destinationStatus: v0.BalanceStatus, - }) - ), -} - -export const deposit = { - name: 'Balances.Deposit', - /** - * Some amount was deposited (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Deposit', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const withdraw = { - name: 'Balances.Withdraw', - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Withdraw', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const slashed = { - name: 'Balances.Slashed', - /** - * Some amount was removed from the account (e.g. for misbehavior). - */ - v0: new EventType( - 'Balances.Slashed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const minted = { - name: 'Balances.Minted', - /** - * Some amount was minted into an account. - */ - v0: new EventType( - 'Balances.Minted', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const burned = { - name: 'Balances.Burned', - /** - * Some amount was burned from an account. - */ - v0: new EventType( - 'Balances.Burned', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const suspended = { - name: 'Balances.Suspended', - /** - * Some amount was suspended from an account (it can be restored later). - */ - v0: new EventType( - 'Balances.Suspended', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const restored = { - name: 'Balances.Restored', - /** - * Some amount was restored into an account. - */ - v0: new EventType( - 'Balances.Restored', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const upgraded = { - name: 'Balances.Upgraded', - /** - * An account was upgraded. - */ - v0: new EventType( - 'Balances.Upgraded', - sts.struct({ - who: v0.AccountId32, - }) - ), -} - -export const issued = { - name: 'Balances.Issued', - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ - v0: new EventType( - 'Balances.Issued', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const rescinded = { - name: 'Balances.Rescinded', - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ - v0: new EventType( - 'Balances.Rescinded', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const locked = { - name: 'Balances.Locked', - /** - * Some balance was locked. - */ - v0: new EventType( - 'Balances.Locked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unlocked = { - name: 'Balances.Unlocked', - /** - * Some balance was unlocked. - */ - v0: new EventType( - 'Balances.Unlocked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const frozen = { - name: 'Balances.Frozen', - /** - * Some balance was frozen. - */ - v0: new EventType( - 'Balances.Frozen', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const thawed = { - name: 'Balances.Thawed', - /** - * Some balance was thawed. - */ - v0: new EventType( - 'Balances.Thawed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/rewards-squid/src/types/balances/storage.ts b/indexers/rewards-squid/src/types/balances/storage.ts deleted file mode 100644 index 5f4a19212..000000000 --- a/indexers/rewards-squid/src/types/balances/storage.ts +++ /dev/null @@ -1,253 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const totalIssuance = { - /** - * The total units issued in the system. - */ - v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, -} - -/** - * The total units issued in the system. - */ -export interface TotalIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const inactiveIssuance = { - /** - * The total units of outstanding deactivated balance in the system. - */ - v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, -} - -/** - * The total units of outstanding deactivated balance in the system. - */ -export interface InactiveIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const account = { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ - v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, -} - -/** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountData - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> -} - -export const locks = { - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ - v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, -} - -/** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ -export interface LocksV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BalanceLock[] - get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> -} - -export const reserves = { - /** - * Named reserves on some account balances. - */ - v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, -} - -/** - * Named reserves on some account balances. - */ -export interface ReservesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.ReserveData[] - get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> -} - -export const holds = { - /** - * Holds on account balances. - */ - v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, - /** - * Holds on account balances. - */ - v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, - /** - * Holds on account balances. - */ - v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, -} - -/** - * Holds on account balances. - */ -export interface HoldsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.IdAmount[] - get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.IdAmount[] - get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> - getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.IdAmount[] - get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> - getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> -} - -export const freezes = { - /** - * Freeze locks on account balances. - */ - v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, -} - -/** - * Freeze locks on account balances. - */ -export interface FreezesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Type_152[] - get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> -} diff --git a/indexers/rewards-squid/src/types/calls.ts b/indexers/rewards-squid/src/types/calls.ts deleted file mode 100644 index 335b561a0..000000000 --- a/indexers/rewards-squid/src/types/calls.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * as subspace from './subspace/calls' -export * as balances from './balances/calls' -export * as domains from './domains/calls' -export * as messenger from './messenger/calls' -export * as rewards from './rewards/calls' diff --git a/indexers/rewards-squid/src/types/constants.ts b/indexers/rewards-squid/src/types/constants.ts deleted file mode 100644 index fbf29a235..000000000 --- a/indexers/rewards-squid/src/types/constants.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * as subspace from './subspace/constants' -export * as rewards from './rewards/constants' -export * as balances from './balances/constants' -export * as domains from './domains/constants' -export * as messenger from './messenger/constants' diff --git a/indexers/rewards-squid/src/types/domains/calls.ts b/indexers/rewards-squid/src/types/domains/calls.ts deleted file mode 100644 index 9c96646e2..000000000 --- a/indexers/rewards-squid/src/types/domains/calls.ts +++ /dev/null @@ -1,221 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), -} - -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), -} - -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), -} - -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), -} - -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), -} - -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), -} - -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), -} - -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), -} - -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} diff --git a/indexers/rewards-squid/src/types/domains/constants.ts b/indexers/rewards-squid/src/types/domains/constants.ts deleted file mode 100644 index a26b47666..000000000 --- a/indexers/rewards-squid/src/types/domains/constants.ts +++ /dev/null @@ -1,213 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), -} diff --git a/indexers/rewards-squid/src/types/domains/events.ts b/indexers/rewards-squid/src/types/domains/events.ts deleted file mode 100644 index 0974cf477..000000000 --- a/indexers/rewards-squid/src/types/domains/events.ts +++ /dev/null @@ -1,235 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/rewards-squid/src/types/domains/storage.ts b/indexers/rewards-squid/src/types/domains/storage.ts deleted file mode 100644 index 0fbb2fa84..000000000 --- a/indexers/rewards-squid/src/types/domains/storage.ts +++ /dev/null @@ -1,1040 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, -} - -/** - * Bundles submitted successfully in current block. - */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, -} - -/** - * Fraud proofs submitted successfully in current block. - */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, -} - -/** - * Stores the next runtime id. - */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, -} - -/** - * Stores the next evm chain id. - */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, -} - -/** - * Indexes operator signing key against OperatorId. - */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, -} - -/** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, -} - -/** - * Share price for the operator pool at the end of Domain epoch. - */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, -} - -/** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, -} - -/** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, -} - -/** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, -} - -/** - * Stores the next domain id. - */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, -} - -/** - * The domain registry - */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, -} - -/** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, -} - -/** - * The head receipt number of each domain - */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, -} - -/** - * The latest confirmed block number of each domain. - */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, -} - -/** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, -} - -/** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, -} - -/** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, -} - -/** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, -} - -/** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, -} - -/** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, -} - -/** - * Storage to hold all the domain's latest confirmed block. - */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, -} - -/** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} diff --git a/indexers/rewards-squid/src/types/events.ts b/indexers/rewards-squid/src/types/events.ts deleted file mode 100644 index c47940ee4..000000000 --- a/indexers/rewards-squid/src/types/events.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * as subspace from './subspace/events' -export * as rewards from './rewards/events' -export * as balances from './balances/events' -export * as domains from './domains/events' -export * as messenger from './messenger/events' diff --git a/indexers/rewards-squid/src/types/index.ts b/indexers/rewards-squid/src/types/index.ts deleted file mode 100644 index 5b659ac4a..000000000 --- a/indexers/rewards-squid/src/types/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * as v0 from './v0' -export * as v1 from './v1' -export * as v3 from './v3' -export * as events from './events' -export * as calls from './calls' -export * as constants from './constants' -export * as storage from './storage' diff --git a/indexers/rewards-squid/src/types/messenger/calls.ts b/indexers/rewards-squid/src/types/messenger/calls.ts deleted file mode 100644 index 748fc2ae0..000000000 --- a/indexers/rewards-squid/src/types/messenger/calls.ts +++ /dev/null @@ -1,115 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const initiateChannel = { - name: 'Messenger.initiate_channel', - /** - * See [`Pallet::initiate_channel`]. - */ - v0: new CallType( - 'Messenger.initiate_channel', - sts.struct({ - dstChainId: v0.ChainId, - params: v0.InitiateChannelParams, - }) - ), -} - -export const closeChannel = { - name: 'Messenger.close_channel', - /** - * See [`Pallet::close_channel`]. - */ - v0: new CallType( - 'Messenger.close_channel', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - }) - ), -} - -export const relayMessage = { - name: 'Messenger.relay_message', - /** - * See [`Pallet::relay_message`]. - */ - v0: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message`]. - */ - v3: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), -} - -export const relayMessageResponse = { - name: 'Messenger.relay_message_response', - /** - * See [`Pallet::relay_message_response`]. - */ - v0: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message_response`]. - */ - v3: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), -} - -export const updateConsensusChainAllowlist = { - name: 'Messenger.update_consensus_chain_allowlist', - /** - * See [`Pallet::update_consensus_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_consensus_chain_allowlist', - sts.struct({ - update: v3.ChainAllowlistUpdate, - }) - ), -} - -export const initiateDomainUpdateChainAllowlist = { - name: 'Messenger.initiate_domain_update_chain_allowlist', - /** - * See [`Pallet::initiate_domain_update_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.initiate_domain_update_chain_allowlist', - sts.struct({ - domainId: v3.DomainId, - update: v3.ChainAllowlistUpdate, - }) - ), -} - -export const updateDomainAllowlist = { - name: 'Messenger.update_domain_allowlist', - /** - * See [`Pallet::update_domain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_domain_allowlist', - sts.struct({ - updates: v3.DomainAllowlistUpdates, - }) - ), -} diff --git a/indexers/rewards-squid/src/types/messenger/constants.ts b/indexers/rewards-squid/src/types/messenger/constants.ts deleted file mode 100644 index e50ab0673..000000000 --- a/indexers/rewards-squid/src/types/messenger/constants.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const channelReserveFee = { - /** - * Channel reserve fee to open a channel. - */ - v3: new ConstantType( - 'Messenger.ChannelReserveFee', - sts.bigint() - ), -} diff --git a/indexers/rewards-squid/src/types/messenger/events.ts b/indexers/rewards-squid/src/types/messenger/events.ts deleted file mode 100644 index c36e8bf2b..000000000 --- a/indexers/rewards-squid/src/types/messenger/events.ts +++ /dev/null @@ -1,150 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const channelInitiated = { - name: 'Messenger.ChannelInitiated', - /** - * Emits when a channel between two chains is initiated. - */ - v0: new EventType( - 'Messenger.ChannelInitiated', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const channelClosed = { - name: 'Messenger.ChannelClosed', - /** - * Emits when a channel between two chains is closed. - */ - v0: new EventType( - 'Messenger.ChannelClosed', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const channelOpen = { - name: 'Messenger.ChannelOpen', - /** - * Emits when a channel between two chain is open. - */ - v0: new EventType( - 'Messenger.ChannelOpen', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const outboxMessage = { - name: 'Messenger.OutboxMessage', - /** - * Emits when a new message is added to the outbox. - */ - v0: new EventType( - 'Messenger.OutboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const outboxMessageResponse = { - name: 'Messenger.OutboxMessageResponse', - /** - * Emits when a message response is available for Outbox message. - */ - v0: new EventType( - 'Messenger.OutboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const outboxMessageResult = { - name: 'Messenger.OutboxMessageResult', - /** - * Emits outbox message result. - */ - v0: new EventType( - 'Messenger.OutboxMessageResult', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: v0.OutboxMessageResult, - }) - ), -} - -export const inboxMessage = { - name: 'Messenger.InboxMessage', - /** - * Emits when a new inbox message is validated and added to Inbox. - */ - v0: new EventType( - 'Messenger.InboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const inboxMessageResponse = { - name: 'Messenger.InboxMessageResponse', - /** - * Emits when a message response is available for Inbox message. - */ - v0: new EventType( - 'Messenger.InboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} diff --git a/indexers/rewards-squid/src/types/messenger/storage.ts b/indexers/rewards-squid/src/types/messenger/storage.ts deleted file mode 100644 index b1dbfcf28..000000000 --- a/indexers/rewards-squid/src/types/messenger/storage.ts +++ /dev/null @@ -1,316 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const nextChannelId = { - /** - * Stores the next channel id for a foreign chain. - */ - v0: new StorageType('Messenger.NextChannelId', 'Default', [v0.ChainId], sts.bigint()) as NextChannelIdV0, -} - -/** - * Stores the next channel id for a foreign chain. - */ -export interface NextChannelIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: v0.ChainId): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.ChainId[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.ChainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.ChainId): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> -} - -export const channels = { - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v0: new StorageType('Messenger.Channels', 'Optional', [v0.ChainId, sts.bigint()], v0.Channel) as ChannelsV0, - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v3: new StorageType('Messenger.Channels', 'Optional', [v3.ChainId, sts.bigint()], v3.Channel) as ChannelsV3, -} - -/** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ -export interface ChannelsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.ChainId, key2: bigint): Promise<(v0.Channel | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint][]): Promise<(v0.Channel | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId, key2: bigint): Promise<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[v0.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId, key2: bigint): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> -} - -/** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ -export interface ChannelsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v3.ChainId, key2: bigint): Promise<(v3.Channel | undefined)> - getMany(block: Block, keys: [v3.ChainId, bigint][]): Promise<(v3.Channel | undefined)[]> - getKeys(block: Block): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId, key2: bigint): Promise<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[v3.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId, key2: bigint): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> -} - -export const inbox = { - /** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ - v0: new StorageType('Messenger.Inbox', 'Optional', [], v0.Message) as InboxV0, -} - -/** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ -export interface InboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> -} - -export const inboxFee = { - /** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ - v0: new StorageType('Messenger.InboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as InboxFeeV0, -} - -/** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ -export interface InboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> -} - -export const outboxFee = { - /** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ - v0: new StorageType('Messenger.OutboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as OutboxFeeV0, -} - -/** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ -export interface OutboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> -} - -export const inboxResponses = { - /** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ - v0: new StorageType('Messenger.InboxResponses', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as InboxResponsesV0, -} - -/** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ -export interface InboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> -} - -export const counterForInboxResponses = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForInboxResponses', 'Default', [], sts.number()) as CounterForInboxResponsesV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForInboxResponsesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const outbox = { - /** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ - v0: new StorageType('Messenger.Outbox', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as OutboxV0, -} - -/** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ -export interface OutboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> -} - -export const counterForOutbox = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForOutbox', 'Default', [], sts.number()) as CounterForOutboxV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForOutboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const outboxResponses = { - /** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ - v0: new StorageType('Messenger.OutboxResponses', 'Optional', [], v0.Message) as OutboxResponsesV0, -} - -/** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ -export interface OutboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> -} - -export const blockMessages = { - /** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ - v0: new StorageType('Messenger.BlockMessages', 'Optional', [], v0.BlockMessages) as BlockMessagesV0, -} - -/** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ -export interface BlockMessagesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.BlockMessages | undefined)> -} - -export const chainAllowlist = { - /** - * An allowlist of chains that can open channel with this chain. - */ - v3: new StorageType('Messenger.ChainAllowlist', 'Default', [], sts.array(() => v3.ChainId)) as ChainAllowlistV3, -} - -/** - * An allowlist of chains that can open channel with this chain. - */ -export interface ChainAllowlistV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.ChainId[] - get(block: Block): Promise<(v3.ChainId[] | undefined)> -} - -export const domainChainAllowlistUpdate = { - /** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ - v3: new StorageType('Messenger.DomainChainAllowlistUpdate', 'Optional', [v3.DomainId], v3.DomainAllowlistUpdates) as DomainChainAllowlistUpdateV3, -} - -/** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ -export interface DomainChainAllowlistUpdateV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v3.DomainId): Promise<(v3.DomainAllowlistUpdates | undefined)> - getMany(block: Block, keys: v3.DomainId[]): Promise<(v3.DomainAllowlistUpdates | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairs(block: Block, key: v3.DomainId): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> -} diff --git a/indexers/rewards-squid/src/types/rewards/calls.ts b/indexers/rewards-squid/src/types/rewards/calls.ts deleted file mode 100644 index b8486afff..000000000 --- a/indexers/rewards-squid/src/types/rewards/calls.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const updateIssuanceParams = { - name: 'Rewards.update_issuance_params', - /** - * See [`Pallet::update_issuance_params`]. - */ - v3: new CallType( - 'Rewards.update_issuance_params', - sts.struct({ - proposerSubsidyPoints: sts.array(() => v3.RewardPoint), - voterSubsidyPoints: sts.array(() => v3.RewardPoint), - }) - ), -} diff --git a/indexers/rewards-squid/src/types/rewards/constants.ts b/indexers/rewards-squid/src/types/rewards/constants.ts deleted file mode 100644 index e1004ecc1..000000000 --- a/indexers/rewards-squid/src/types/rewards/constants.ts +++ /dev/null @@ -1,61 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const blockReward = { - /** - * Fixed reward for block producer. - */ - v0: new ConstantType( - 'Rewards.BlockReward', - sts.bigint() - ), -} - -export const voteReward = { - /** - * Fixed reward for voter. - */ - v0: new ConstantType( - 'Rewards.VoteReward', - sts.bigint() - ), -} - -export const avgBlockspaceUsageNumBlocks = { - /** - * Number of blocks over which to compute average blockspace usage - */ - v3: new ConstantType( - 'Rewards.AvgBlockspaceUsageNumBlocks', - sts.number() - ), -} - -export const transactionByteFee = { - /** - * Cost of one byte of blockspace - */ - v3: new ConstantType( - 'Rewards.TransactionByteFee', - sts.bigint() - ), -} - -export const maxRewardPoints = { - /** - * Max number of reward points - */ - v3: new ConstantType( - 'Rewards.MaxRewardPoints', - sts.number() - ), -} - -export const proposerTaxOnVotes = { - /** - * Tax of the proposer on vote rewards - */ - v3: new ConstantType( - 'Rewards.ProposerTaxOnVotes', - sts.tuple(() => [sts.number(), sts.number()]) - ), -} diff --git a/indexers/rewards-squid/src/types/rewards/events.ts b/indexers/rewards-squid/src/types/rewards/events.ts deleted file mode 100644 index 5b01a1694..000000000 --- a/indexers/rewards-squid/src/types/rewards/events.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockReward = { - name: 'Rewards.BlockReward', - /** - * Issued reward for the block author. - */ - v0: new EventType( - 'Rewards.BlockReward', - sts.struct({ - blockAuthor: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} - -export const voteReward = { - name: 'Rewards.VoteReward', - /** - * Issued reward for the voter. - */ - v0: new EventType( - 'Rewards.VoteReward', - sts.struct({ - voter: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} diff --git a/indexers/rewards-squid/src/types/rewards/storage.ts b/indexers/rewards-squid/src/types/rewards/storage.ts deleted file mode 100644 index 971093421..000000000 --- a/indexers/rewards-squid/src/types/rewards/storage.ts +++ /dev/null @@ -1,82 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const avgBlockspaceUsage = { - /** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ - v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, -} - -/** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ -export interface AvgBlockspaceUsageV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const rewardsEnabled = { - /** - * Whether rewards are enabled - */ - v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, -} - -/** - * Whether rewards are enabled - */ -export interface RewardsEnabledV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const remainingIssuance = { - /** - * Tokens left to issue to farmers at any given time - */ - v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, -} - -/** - * Tokens left to issue to farmers at any given time - */ -export interface RemainingIssuanceV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const proposerSubsidyPoints = { - /** - * Block proposer subsidy parameters - */ - v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, -} - -/** - * Block proposer subsidy parameters - */ -export interface ProposerSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} - -export const voterSubsidyPoints = { - /** - * Voter subsidy parameters - */ - v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, -} - -/** - * Voter subsidy parameters - */ -export interface VoterSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} diff --git a/indexers/rewards-squid/src/types/storage.ts b/indexers/rewards-squid/src/types/storage.ts deleted file mode 100644 index 05b132f59..000000000 --- a/indexers/rewards-squid/src/types/storage.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * as subspace from './subspace/storage' -export * as balances from './balances/storage' -export * as domains from './domains/storage' -export * as messenger from './messenger/storage' -export * as rewards from './rewards/storage' diff --git a/indexers/rewards-squid/src/types/subspace/calls.ts b/indexers/rewards-squid/src/types/subspace/calls.ts deleted file mode 100644 index add70afae..000000000 --- a/indexers/rewards-squid/src/types/subspace/calls.ts +++ /dev/null @@ -1,79 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const reportEquivocation = { - name: 'Subspace.report_equivocation', - /** - * See [`Pallet::report_equivocation`]. - */ - v0: new CallType( - 'Subspace.report_equivocation', - sts.struct({ - equivocationProof: v0.EquivocationProof, - }) - ), -} - -export const storeSegmentHeaders = { - name: 'Subspace.store_segment_headers', - /** - * See [`Pallet::store_segment_headers`]. - */ - v0: new CallType( - 'Subspace.store_segment_headers', - sts.struct({ - segmentHeaders: sts.array(() => v0.SegmentHeader), - }) - ), -} - -export const enableSolutionRangeAdjustment = { - name: 'Subspace.enable_solution_range_adjustment', - /** - * See [`Pallet::enable_solution_range_adjustment`]. - */ - v0: new CallType( - 'Subspace.enable_solution_range_adjustment', - sts.struct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }) - ), -} - -export const vote = { - name: 'Subspace.vote', - /** - * See [`Pallet::vote`]. - */ - v0: new CallType( - 'Subspace.vote', - sts.struct({ - signedVote: v0.SignedVote, - }) - ), -} - -export const enableRewardsAt = { - name: 'Subspace.enable_rewards_at', - /** - * See [`Pallet::enable_rewards_at`]. - */ - v0: new CallType( - 'Subspace.enable_rewards_at', - sts.struct({ - enableRewardsAt: v0.EnableRewardsAt, - }) - ), -} - -export const enableAuthoringByAnyone = { - name: 'Subspace.enable_authoring_by_anyone', - /** - * See [`Pallet::enable_authoring_by_anyone`]. - */ - v0: new CallType( - 'Subspace.enable_authoring_by_anyone', - sts.unit() - ), -} diff --git a/indexers/rewards-squid/src/types/subspace/constants.ts b/indexers/rewards-squid/src/types/subspace/constants.ts deleted file mode 100644 index 555317b21..000000000 --- a/indexers/rewards-squid/src/types/subspace/constants.ts +++ /dev/null @@ -1,154 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockAuthoringDelay = { - /** - * Number of slots between slot arrival and when corresponding block can be produced. - * - * Practically this means future proof of time proof needs to be revealed this many slots - * ahead before block can be authored even though solution is available before that. - */ - v0: new ConstantType( - 'Subspace.BlockAuthoringDelay', - v0.Slot - ), -} - -export const potEntropyInjectionInterval = { - /** - * Interval, in blocks, between blockchain entropy injection into proof of time chain. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionInterval', - sts.number() - ), -} - -export const potEntropyInjectionLookbackDepth = { - /** - * Interval, in entropy injection intervals, where to take entropy for injection from. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionLookbackDepth', - sts.number() - ), -} - -export const potEntropyInjectionDelay = { - /** - * Delay after block, in slots, when entropy injection takes effect. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionDelay', - v0.Slot - ), -} - -export const eraDuration = { - /** - * The amount of time, in blocks, that each era should last. - * NOTE: Currently it is not possible to change the era duration after - * the chain has started. Attempting to do so will brick block production. - */ - v0: new ConstantType( - 'Subspace.EraDuration', - sts.number() - ), -} - -export const initialSolutionRange = { - /** - * Initial solution range used for challenges during the very first era. - */ - v0: new ConstantType( - 'Subspace.InitialSolutionRange', - sts.bigint() - ), -} - -export const slotProbability = { - /** - * How often in slots slots (on average, not counting collisions) will have a block. - * - * Expressed as a rational where the first member of the tuple is the - * numerator and the second is the denominator. The rational should - * represent a value between 0 and 1. - */ - v0: new ConstantType( - 'Subspace.SlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const confirmationDepthK = { - /** - * Depth `K` after which a block enters the recorded history (a global constant, as opposed - * to the client-dependent transaction confirmation depth `k`). - */ - v0: new ConstantType( - 'Subspace.ConfirmationDepthK', - sts.number() - ), -} - -export const recentSegments = { - /** - * Number of latest archived segments that are considered "recent history". - */ - v0: new ConstantType( - 'Subspace.RecentSegments', - v0.HistorySize - ), -} - -export const recentHistoryFraction = { - /** - * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. - */ - v0: new ConstantType( - 'Subspace.RecentHistoryFraction', - sts.tuple(() => [v0.HistorySize, v0.HistorySize]) - ), -} - -export const minSectorLifetime = { - /** - * Minimum lifetime of a plotted sector, measured in archived segment. - */ - v0: new ConstantType( - 'Subspace.MinSectorLifetime', - v0.HistorySize - ), -} - -export const expectedVotesPerBlock = { - /** - * Number of votes expected per block. - * - * This impacts solution range for votes in consensus. - */ - v0: new ConstantType( - 'Subspace.ExpectedVotesPerBlock', - sts.number() - ), -} - -export const maxPiecesInSector = { - /** - * How many pieces one sector is supposed to contain (max) - */ - v0: new ConstantType( - 'Subspace.MaxPiecesInSector', - sts.number() - ), -} - -export const blockSlotCount = { - /** - * Maximum number of block number to block slot mappings to keep (oldest pruned first). - */ - v3: new ConstantType( - 'Subspace.BlockSlotCount', - sts.number() - ), -} diff --git a/indexers/rewards-squid/src/types/subspace/events.ts b/indexers/rewards-squid/src/types/subspace/events.ts deleted file mode 100644 index 65427a471..000000000 --- a/indexers/rewards-squid/src/types/subspace/events.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const segmentHeaderStored = { - name: 'Subspace.SegmentHeaderStored', - /** - * Segment header was stored in blockchain history. - */ - v0: new EventType( - 'Subspace.SegmentHeaderStored', - sts.struct({ - segmentHeader: v0.SegmentHeader, - }) - ), -} - -export const farmerVote = { - name: 'Subspace.FarmerVote', - /** - * Farmer vote. - */ - v0: new EventType( - 'Subspace.FarmerVote', - sts.struct({ - publicKey: v0.Public, - rewardAddress: v0.AccountId32, - height: sts.number(), - parentHash: v0.H256, - }) - ), -} diff --git a/indexers/rewards-squid/src/types/subspace/storage.ts b/indexers/rewards-squid/src/types/subspace/storage.ts deleted file mode 100644 index 8c1220cc5..000000000 --- a/indexers/rewards-squid/src/types/subspace/storage.ts +++ /dev/null @@ -1,390 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const genesisSlot = { - /** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ - v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, -} - -/** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ -export interface GenesisSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const currentSlot = { - /** - * Current slot number. - */ - v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, -} - -/** - * Current slot number. - */ -export interface CurrentSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const potSlotIterations = { - /** - * Number of iterations for proof of time per slot - */ - v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, -} - -/** - * Number of iterations for proof of time per slot - */ -export interface PotSlotIterationsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.NonZeroU32 | undefined)> -} - -export const solutionRanges = { - /** - * Solution ranges used for challenges. - */ - v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, -} - -/** - * Solution ranges used for challenges. - */ -export interface SolutionRangesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.SolutionRanges - get(block: Block): Promise<(v0.SolutionRanges | undefined)> -} - -export const shouldAdjustSolutionRange = { - /** - * Storage to check if the solution range is to be adjusted for next era - */ - v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, -} - -/** - * Storage to check if the solution range is to be adjusted for next era - */ -export interface ShouldAdjustSolutionRangeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const nextSolutionRangeOverride = { - /** - * Override solution range during next update - */ - v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, -} - -/** - * Override solution range during next update - */ -export interface NextSolutionRangeOverrideV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> -} - -export const eraStartSlot = { - /** - * Slot at which current era started. - */ - v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, -} - -/** - * Slot at which current era started. - */ -export interface EraStartSlotV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const blockList = { - /** - * A set of blocked farmers keyed by their public key. - */ - v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, -} - -/** - * A set of blocked farmers keyed by their public key. - */ -export interface BlockListV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.Public): Promise<(null | undefined)> - getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.Public): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable - getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> -} - -export const segmentCommitment = { - /** - * Mapping from segment index to corresponding segment commitment of contained records. - */ - v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, -} - -/** - * Mapping from segment index to corresponding segment commitment of contained records. - */ -export interface SegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> - getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.SegmentIndex): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable - getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> -} - -export const counterForSegmentCommitment = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForSegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const didProcessSegmentHeaders = { - /** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, -} - -/** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ -export interface DidProcessSegmentHeadersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const parentVoteVerificationData = { - /** - * Storage of previous vote verification data, updated on each block during finalization. - */ - v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, -} - -/** - * Storage of previous vote verification data, updated on each block during finalization. - */ -export interface ParentVoteVerificationDataV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.VoteVerificationData | undefined)> -} - -export const parentBlockAuthorInfo = { - /** - * Parent block author information. - */ - v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, -} - -/** - * Parent block author information. - */ -export interface ParentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> -} - -export const enableRewards = { - /** - * Enable rewards since specified block number. - */ - v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, -} - -/** - * Enable rewards since specified block number. - */ -export interface EnableRewardsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const enableRewardsBelowSolutionRange = { - /** - * Enable rewards when solution range is below this threshold. - */ - v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, -} - -/** - * Enable rewards when solution range is below this threshold. - */ -export interface EnableRewardsBelowSolutionRangeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(bigint | undefined)> -} - -export const currentBlockAuthorInfo = { - /** - * Temporary value (cleared at block finalization) with block author information. - */ - v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, -} - -/** - * Temporary value (cleared at block finalization) with block author information. - */ -export interface CurrentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> -} - -export const parentBlockVoters = { - /** - * Voters in the parent block (set at the end of the block with current values). - */ - v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, -} - -/** - * Voters in the parent block (set at the end of the block with current values). - */ -export interface ParentBlockVotersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const currentBlockVoters = { - /** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ - v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, -} - -/** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ -export interface CurrentBlockVotersV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const potEntropy = { - /** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ - v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, -} - -/** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ -export interface PotEntropyV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v0.PotEntropyValue][] - get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> -} - -export const blockRandomness = { - /** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ - v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, -} - -/** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ -export interface BlockRandomnessV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Randomness | undefined)> -} - -export const allowAuthoringByAnyone = { - /** - * Allow block authoring by anyone or just root. - */ - v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, -} - -/** - * Allow block authoring by anyone or just root. - */ -export interface AllowAuthoringByAnyoneV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const rootPlotPublicKey = { - /** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ - v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, -} - -/** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ -export interface RootPlotPublicKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Public | undefined)> -} - -export const blockSlots = { - /** - * Bounded mapping from block number to slot - */ - v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, -} - -/** - * Bounded mapping from block number to slot - */ -export interface BlockSlotsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v3.Slot][] - get(block: Block): Promise<([number, v3.Slot][] | undefined)> -} diff --git a/indexers/rewards-squid/src/types/support.ts b/indexers/rewards-squid/src/types/support.ts deleted file mode 100644 index 456dfc2fb..000000000 --- a/indexers/rewards-squid/src/types/support.ts +++ /dev/null @@ -1,142 +0,0 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' -import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' -import assert from 'assert' - - -export {sts, Bytes, BitSequence, Option, Result} - - -export interface RuntimeCtx { - _runtime: Runtime -} - - -export interface Block extends RuntimeCtx { - hash: Bytes - height: number -} - - -interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } -} - - -export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } -} - - -export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } -} - - -export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } -} diff --git a/indexers/rewards-squid/src/types/v0.ts b/indexers/rewards-squid/src/types/v0.ts deleted file mode 100644 index 6ca1f3af7..000000000 --- a/indexers/rewards-squid/src/types/v0.ts +++ /dev/null @@ -1,1960 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const HistorySize = sts.bigint() - -export interface BlockMessages { - outbox: [ChainId, [bigint, bigint], MessageWeightTag][] - inboxResponses: [ChainId, [bigint, bigint], MessageWeightTag][] -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export const BlockMessages: sts.Type = sts.struct(() => { - return { - outbox: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - inboxResponses: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export interface Message { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - payload: VersionedPayload - lastDeliveredMessageResponseNonce?: (bigint | undefined) -} - -export type VersionedPayload = VersionedPayload_V0 - -export interface VersionedPayload_V0 { - __kind: 'V0' - value: Payload -} - -export type Payload = Payload_Endpoint | Payload_Protocol - -export interface Payload_Endpoint { - __kind: 'Endpoint' - value: Type_294 -} - -export interface Payload_Protocol { - __kind: 'Protocol' - value: RequestResponse -} - -export type RequestResponse = RequestResponse_Request | RequestResponse_Response - -export interface RequestResponse_Request { - __kind: 'Request' - value: ProtocolMessageRequest -} - -export interface RequestResponse_Response { - __kind: 'Response' - value: Result -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -export type ProtocolMessageRequest = ProtocolMessageRequest_ChannelClose | ProtocolMessageRequest_ChannelOpen - -export interface ProtocolMessageRequest_ChannelClose { - __kind: 'ChannelClose' -} - -export interface ProtocolMessageRequest_ChannelOpen { - __kind: 'ChannelOpen' - value: InitiateChannelParams -} - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -export interface FeeModel { - relayFee: bigint -} - -export type Type_294 = Type_294_Request | Type_294_Response - -export interface Type_294_Request { - __kind: 'Request' - value: EndpointRequest -} - -export interface Type_294_Response { - __kind: 'Response' - value: Result -} - -export interface EndpointRequest { - srcEndpoint: Endpoint - dstEndpoint: Endpoint - payload: Bytes -} - -export const Message: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - payload: VersionedPayload, - lastDeliveredMessageResponseNonce: sts.option(() => sts.bigint()), - } -}) - -export const VersionedPayload: sts.Type = sts.closedEnum(() => { - return { - V0: Payload, - } -}) - -export const Payload: sts.Type = sts.closedEnum(() => { - return { - Endpoint: Type_294, - Protocol: RequestResponse, - } -}) - -export const RequestResponse: sts.Type = sts.closedEnum(() => { - return { - Request: ProtocolMessageRequest, - Response: sts.result(() => sts.unit(), () => DispatchError), - } -}) - -export const ProtocolMessageRequest: sts.Type = sts.closedEnum(() => { - return { - ChannelClose: sts.unit(), - ChannelOpen: InitiateChannelParams, - } -}) - -export const Type_294: sts.Type = sts.closedEnum(() => { - return { - Request: EndpointRequest, - Response: sts.result(() => sts.bytes(), () => DispatchError), - } -}) - -export const EndpointRequest: sts.Type = sts.struct(() => { - return { - srcEndpoint: Endpoint, - dstEndpoint: Endpoint, - payload: sts.bytes(), - } -}) - -export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel -} - -export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open - -export interface ChannelState_Closed { - __kind: 'Closed' -} - -export interface ChannelState_Initiated { - __kind: 'Initiated' -} - -export interface ChannelState_Open { - __kind: 'Open' -} - -export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } -}) - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint -} - -export type U256 = bigint - -export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } -}) - -export const U256 = sts.bigint() - -export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint -} - -export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } -}) - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint -} - -export interface KnownDeposit { - shares: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } -}) - -export type DomainEpoch = [DomainId, number] - -export type SharePrice = number - -export const SharePrice = sts.number() - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] -} - -export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } -}) - -export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 -} - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } -}) - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export type DomainId = number - -export type H256 = Bytes - -export interface Type_152 { - amount: bigint -} - -export const Type_152: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - } -}) - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface ReserveData { - id: Bytes - amount: bigint -} - -export const ReserveData: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - } -}) - -export interface BalanceLock { - id: Bytes - amount: bigint - reasons: Reasons -} - -export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc - -export interface Reasons_All { - __kind: 'All' -} - -export interface Reasons_Fee { - __kind: 'Fee' -} - -export interface Reasons_Misc { - __kind: 'Misc' -} - -export const BalanceLock: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - reasons: Reasons, - } -}) - -export const Reasons: sts.Type = sts.closedEnum(() => { - return { - All: sts.unit(), - Fee: sts.unit(), - Misc: sts.unit(), - } -}) - -export interface AccountData { - free: bigint - reserved: bigint - frozen: bigint - flags: ExtraFlags -} - -export type ExtraFlags = bigint - -export const AccountData: sts.Type = sts.struct(() => { - return { - free: sts.bigint(), - reserved: sts.bigint(), - frozen: sts.bigint(), - flags: ExtraFlags, - } -}) - -export const ExtraFlags = sts.bigint() - -export type Randomness = Bytes - -export const Randomness = sts.bytes() - -export interface PotEntropyValue { - targetSlot?: (Slot | undefined) - entropy: Bytes -} - -export const PotEntropyValue: sts.Type = sts.struct(() => { - return { - targetSlot: sts.option(() => Slot), - entropy: sts.bytes(), - } -}) - -export type Signature = Bytes - -export const Signature = sts.bytes() - -export type AccountId32 = Bytes - -export interface Scalar { - inner: Bytes -} - -export type PieceOffset = number - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export const PieceOffset = sts.number() - -export interface VoteVerificationData { - solutionRange: bigint - voteSolutionRange: bigint - currentSlot: Slot - parentSlot: Slot -} - -export const VoteVerificationData: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - voteSolutionRange: sts.bigint(), - currentSlot: Slot, - parentSlot: Slot, - } -}) - -export type SegmentIndex = bigint - -export type SegmentCommitment = Bytes - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type Public = Bytes - -export interface SolutionRangeOverride { - solutionRange: bigint - votingSolutionRange: bigint -} - -export const SolutionRangeOverride: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - votingSolutionRange: sts.bigint(), - } -}) - -export interface SolutionRanges { - current: bigint - next?: (bigint | undefined) - votingCurrent: bigint - votingNext?: (bigint | undefined) -} - -export const SolutionRanges: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.option(() => sts.bigint()), - votingCurrent: sts.bigint(), - votingNext: sts.option(() => sts.bigint()), - } -}) - -export type NonZeroU32 = number - -export const NonZeroU32 = sts.number() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } -}) - -export interface BlockInfo { - blockNumber: number - blockHash: H256 -} - -export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: ([BlockInfo, StorageProof] | undefined) - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type HistorySize = bigint - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export const DomainId = sts.number() - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export const H256 = sts.bytes() - -export const AccountId32 = sts.bytes() - -export const Public = sts.bytes() - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} diff --git a/indexers/rewards-squid/src/types/v1.ts b/indexers/rewards-squid/src/types/v1.ts deleted file mode 100644 index c262a2b95..000000000 --- a/indexers/rewards-squid/src/types/v1.ts +++ /dev/null @@ -1,953 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const PalletId = sts.bytes() - -export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 -} - -export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } -}) - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainId = sts.number() - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) -} - -export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint -} - -export type DomainEpoch = [DomainId, number] - -export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } -}) - -export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint -} - -export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const PotOutput = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type PotOutput = Bytes - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export const Slot = sts.bigint() - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type Slot = bigint - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const AccountId32 = sts.bytes() diff --git a/indexers/rewards-squid/src/types/v3.ts b/indexers/rewards-squid/src/types/v3.ts deleted file mode 100644 index 8e3a329dc..000000000 --- a/indexers/rewards-squid/src/types/v3.ts +++ /dev/null @@ -1,434 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface RewardPoint { - block: number - subsidy: bigint -} - -export interface DomainAllowlistUpdates { - allowChains: ChainId[] - removeChains: ChainId[] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel - maybeOwner?: (AccountId32 | undefined) -} - -export interface FeeModel { - relayFee: bigint -} - -export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open - -export interface ChannelState_Closed { - __kind: 'Closed' -} - -export interface ChannelState_Initiated { - __kind: 'Initiated' -} - -export interface ChannelState_Open { - __kind: 'Open' -} - -export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - maybeOwner: sts.option(() => AccountId32), - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export type DomainId = number - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type DomainEpoch = [DomainId, number] - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export interface HoldIdentifier_Messenger { - __kind: 'Messenger' - value: MessengerHoldIdentifier -} - -export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel - -export interface MessengerHoldIdentifier_Channel { - __kind: 'Channel' - value: [ChainId, bigint] -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - Messenger: MessengerHoldIdentifier, - } -}) - -export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Channel: sts.tuple(() => [ChainId, sts.bigint()]), - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } -}) - -export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { - return { - allowChains: sts.array(() => ChainId), - removeChains: sts.array(() => ChainId), - } -}) - -export const DomainId = sts.number() - -export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { - return { - Add: ChainId, - Remove: ChainId, - } -}) - -export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove - -export interface ChainAllowlistUpdate_Add { - __kind: 'Add' - value: ChainId -} - -export interface ChainAllowlistUpdate_Remove { - __kind: 'Remove' - value: ChainId -} - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export const Proof: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - messageProof: StorageProof, - }), - Domain: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - domainProof: StorageProof, - messageProof: StorageProof, - }), - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Type_237, - } -}) - -export const Type_237: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export interface Type_237 { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export type H256 = Bytes - -export const EncodableOpaqueLeaf = sts.bytes() - -export const H256 = sts.bytes() - -export interface ConsensusChainMmrLeafProof { - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Type_237 -} - -export type EncodableOpaqueLeaf = Bytes - -export type Proof = Proof_Consensus | Proof_Domain - -export interface Proof_Consensus { - __kind: 'Consensus' - consensusChainMmrProof: ConsensusChainMmrLeafProof - messageProof: StorageProof -} - -export interface Proof_Domain { - __kind: 'Domain' - consensusChainMmrProof: ConsensusChainMmrLeafProof - domainProof: StorageProof - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} diff --git a/indexers/rewards-squid/typegen.json b/indexers/rewards-squid/typegen.json deleted file mode 100644 index f84febe86..000000000 --- a/indexers/rewards-squid/typegen.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "outDir": "src/types", - "specVersions": "gemini3h.jsonl", - "pallets": { - "Balances": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Domains": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Rewards": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Messenger": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Subspace": { - "events": true, - "calls": true, - "storage": true, - "constants": true - } - } -} diff --git a/indexers/staking-squid/.dockerignore b/indexers/staking-squid/.dockerignore deleted file mode 100644 index 27c983bc0..000000000 --- a/indexers/staking-squid/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -/.git -/node_modules -/lib -/*Versions.jsonl diff --git a/indexers/staking-squid/.env b/indexers/staking-squid/.env index 94559b7bf..50228ed2c 100644 --- a/indexers/staking-squid/.env +++ b/indexers/staking-squid/.env @@ -1,4 +1,4 @@ -DB_URL=postgres://postgres:postgres-indexer@localhost:5432/squid +DB_URL=postgres://postgres:postgres@localhost:5432/staking ## Uncoment to use the db and docker from this workspace # DB_NAME=squid diff --git a/indexers/staking-squid/.gitignore b/indexers/staking-squid/.gitignore index 263e67075..b7db6c18c 100644 --- a/indexers/staking-squid/.gitignore +++ b/indexers/staking-squid/.gitignore @@ -8,4 +8,7 @@ # IDE files /.idea -/src/model/generated/ \ No newline at end of file +/db/ +/migrations/ +/src/model/ +/src/types/ \ No newline at end of file diff --git a/indexers/staking-squid/.prettierrc b/indexers/staking-squid/.prettierrc new file mode 100644 index 000000000..49debf44c --- /dev/null +++ b/indexers/staking-squid/.prettierrc @@ -0,0 +1,10 @@ +{ + "semi": false, + "tabWidth": 2, + "printWidth": 100, + "singleQuote": true, + "trailingComma": "all", + "jsxSingleQuote": true, + "bracketSpacing": true, + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/indexers/staking-squid/db/migrations/1724239723681-Data.js b/indexers/staking-squid/db/migrations/1724239723681-Data.js deleted file mode 100644 index 298232492..000000000 --- a/indexers/staking-squid/db/migrations/1724239723681-Data.js +++ /dev/null @@ -1,269 +0,0 @@ -module.exports = class Data1724239723681 { - name = 'Data1724239723681' - - async up(db) { - await db.query(`CREATE TABLE "domain" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "account_id" text NOT NULL, "name" text NOT NULL, "runtime_id" integer NOT NULL, "runtime" character varying(6) NOT NULL, "runtime_info" text NOT NULL, "completed_epoch" integer NOT NULL, "last_domain_block_number" integer NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "total_consensus_storage_fee" numeric NOT NULL, "total_domain_execution_fee" numeric NOT NULL, "total_burned_balance" numeric NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_rewards" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "bundle_count" integer NOT NULL, "current_epoch_duration" numeric NOT NULL, "last_epoch_duration" numeric NOT NULL, "last6_epochs_duration" numeric NOT NULL, "last144_epoch_duration" numeric NOT NULL, "last1k_epoch_duration" numeric NOT NULL, "last_bundle_at" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_27e3ec3ea0ae02c8c5bceab3ba9" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_c1e90b3654ffe0a5544e502edb" ON "domain" ("sort_id") `) - await db.query(`CREATE INDEX "IDX_c117722589b2b0f927aa16e25f" ON "domain" ("account_id") `) - await db.query(`CREATE INDEX "IDX_26a07113f90df161f919c7d5a6" ON "domain" ("name") `) - await db.query(`CREATE INDEX "IDX_36bfbe927612b8c0712c25f5a0" ON "domain" ("runtime_id") `) - await db.query(`CREATE INDEX "IDX_9f96c312a490b7a2a3d017721e" ON "domain" ("runtime") `) - await db.query(`CREATE INDEX "IDX_80867983eb3f6e204acfea4214" ON "domain" ("completed_epoch") `) - await db.query(`CREATE INDEX "IDX_e3a1b94f40001682587d9b0a3d" ON "domain" ("last_domain_block_number") `) - await db.query(`CREATE INDEX "IDX_6da91e378c5e17e2d467b592b0" ON "domain" ("total_volume") `) - await db.query(`CREATE INDEX "IDX_35b49bec8ab1e3864de09a60d6" ON "domain" ("created_at") `) - await db.query(`CREATE INDEX "IDX_c3ac554ab7a2ed97d9a0af4083" ON "domain" ("updated_at") `) - await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_2740156ea8742b8df1ad9d9774" ON "account" ("created_at") `) - await db.query(`CREATE INDEX "IDX_8bed31488e09ed64770378600b" ON "account" ("updated_at") `) - await db.query(`CREATE TABLE "operator" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "signing_key" text NOT NULL, "minimum_nominator_stake" numeric NOT NULL, "nomination_tax" integer NOT NULL, "name" text NOT NULL, "description" text NOT NULL, "icon" text NOT NULL, "banner" text NOT NULL, "website" text NOT NULL, "website_verified" boolean NOT NULL, "email" text NOT NULL, "email_verified" boolean NOT NULL, "discord" text NOT NULL, "github" text NOT NULL, "twitter" text NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_epoch_rewards" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "raw_status" text NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "total_consensus_storage_fee" numeric NOT NULL, "total_domain_execution_fee" numeric NOT NULL, "total_burned_balance" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_rewards" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "active_epoch_count" integer NOT NULL, "bundle_count" integer NOT NULL, "status" character varying(12) NOT NULL, "pending_action" character varying(27) NOT NULL, "last_bundle_at" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_8b950e1572745d9f69be7748ae8" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_ed3a1bcef6df98998f07a571a7" ON "operator" ("sort_id") `) - await db.query(`CREATE INDEX "IDX_91b197ab29ad85b5e616289ea0" ON "operator" ("account_id") `) - await db.query(`CREATE INDEX "IDX_1c800426a1f738c1b202ff839f" ON "operator" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_51b6c3609906ff3cd25e39e1b2" ON "operator" ("signing_key") `) - await db.query(`CREATE INDEX "IDX_b383ed84b5891bd42be1d2eefd" ON "operator" ("name") `) - await db.query(`CREATE INDEX "IDX_df2e0bb74daa727ab46b3292b0" ON "operator" ("total_volume") `) - await db.query(`CREATE INDEX "IDX_c7fd0bf382a9832cf1db87827c" ON "operator" ("status") `) - await db.query(`CREATE INDEX "IDX_987b325e3ab4045266b612b032" ON "operator" ("pending_action") `) - await db.query(`CREATE INDEX "IDX_d6260ed02d20cf8231ebb742d6" ON "operator" ("created_at") `) - await db.query(`CREATE INDEX "IDX_d6d18ca05472785030a7a3963b" ON "operator" ("updated_at") `) - await db.query(`CREATE TABLE "domain_block" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "domain_epoch_id" text NOT NULL, "block_number" integer NOT NULL, "block_hash" text NOT NULL, "extrinsic_root" text NOT NULL, "epoch" integer NOT NULL, "consensus_block_number" integer NOT NULL, "consensus_block_hash" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_80e382ab071c0035308c3bbe269" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_4d9cd1246ac5e4eb3d87032a95" ON "domain_block" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_2c2a6c4f46c2585759e410aca8" ON "domain_block" ("domain_epoch_id") `) - await db.query(`CREATE INDEX "IDX_f20da90e65426e4f794f848b81" ON "domain_block" ("block_number") `) - await db.query(`CREATE INDEX "IDX_cc1b0fc775b917ea6223b8602e" ON "domain_block" ("block_hash") `) - await db.query(`CREATE INDEX "IDX_eb1b10f35bffbce1185f4ac3f3" ON "domain_block" ("epoch") `) - await db.query(`CREATE INDEX "IDX_162c14bd69f437bed7e4f71bd8" ON "domain_block" ("consensus_block_number") `) - await db.query(`CREATE INDEX "IDX_43ace0c9890ef82e3eb90fe405" ON "domain_block" ("consensus_block_hash") `) - await db.query(`CREATE INDEX "IDX_a884257019c36496b853d50d3c" ON "domain_block" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_64aebba834dae120aead88ff33" ON "domain_block" ("created_at") `) - await db.query(`CREATE INDEX "IDX_d53bbe077c18c36b918abc40ff" ON "domain_block" ("updated_at") `) - await db.query(`CREATE TABLE "domain_epoch" ("id" character varying NOT NULL, "epoch" integer NOT NULL, "domain_id" text NOT NULL, "block_number_start" integer NOT NULL, "block_number_end" integer NOT NULL, "block_count" integer NOT NULL, "timestamp_start" TIMESTAMP WITH TIME ZONE NOT NULL, "timestamp_end" TIMESTAMP WITH TIME ZONE NOT NULL, "epoch_duration" numeric NOT NULL, "consensus_block_number_start" integer NOT NULL, "consensus_block_number_end" integer NOT NULL, "consensus_block_hash_start" text NOT NULL, "consensus_block_hash_end" text NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_7ffa6704fb3cfccc7127e6fdf36" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_333f88cae9e28d581d763fcd3a" ON "domain_epoch" ("epoch") `) - await db.query(`CREATE INDEX "IDX_49d0353f55bd117f11a6d6b10e" ON "domain_epoch" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_feacf6e5472e742480e182fead" ON "domain_epoch" ("block_number_start") `) - await db.query(`CREATE INDEX "IDX_d2800b9e4f55e70c2dbf50c180" ON "domain_epoch" ("block_number_end") `) - await db.query(`CREATE INDEX "IDX_4c04931070a2b4b5c86aa12503" ON "domain_epoch" ("timestamp_start") `) - await db.query(`CREATE INDEX "IDX_fef96292239cebf57a521d0264" ON "domain_epoch" ("timestamp_end") `) - await db.query(`CREATE INDEX "IDX_89e03f524980b405de261570bb" ON "domain_epoch" ("consensus_block_number_start") `) - await db.query(`CREATE INDEX "IDX_14aad4eb1f052ff1198ed69aa9" ON "domain_epoch" ("consensus_block_number_end") `) - await db.query(`CREATE INDEX "IDX_dd129bbbbffb90b197efdd59f0" ON "domain_epoch" ("consensus_block_hash_start") `) - await db.query(`CREATE INDEX "IDX_77df3788bfba37edba3a23da00" ON "domain_epoch" ("consensus_block_hash_end") `) - await db.query(`CREATE INDEX "IDX_d047d4eb28fd592bdfc1f398ae" ON "domain_epoch" ("created_at") `) - await db.query(`CREATE INDEX "IDX_bbc9922495360081a8c591b312" ON "domain_epoch" ("updated_at") `) - await db.query(`CREATE TABLE "bundle" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "domain_block_id" text NOT NULL, "domain_epoch_id" text NOT NULL, "domain_block_number" integer NOT NULL, "domain_block_hash" text NOT NULL, "domain_block_extrinsic_root" text NOT NULL, "epoch" integer NOT NULL, "consensus_block_number" integer NOT NULL, "consensus_block_hash" text NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "consensus_storage_fee" numeric NOT NULL, "domain_execution_fee" numeric NOT NULL, "burned_balance" numeric NOT NULL, CONSTRAINT "PK_637e3f87e837d6532109c198dea" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_82b7b684e1b50da245f72d6020" ON "bundle" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_0033c9f116ee25b5ebb8d24222" ON "bundle" ("domain_block_id") `) - await db.query(`CREATE INDEX "IDX_704516bcbc02fe10ce28e8e262" ON "bundle" ("domain_epoch_id") `) - await db.query(`CREATE INDEX "IDX_b5c951f317cc0451d9d3c21aaa" ON "bundle" ("domain_block_number") `) - await db.query(`CREATE INDEX "IDX_006e8a93183443a738f7c5968b" ON "bundle" ("epoch") `) - await db.query(`CREATE INDEX "IDX_5c848822e75fbe863d43231468" ON "bundle" ("consensus_block_number") `) - await db.query(`CREATE INDEX "IDX_33b73ddabaa5e322cff6ab15b1" ON "bundle" ("consensus_block_hash") `) - await db.query(`CREATE INDEX "IDX_e49c7ec4d50ca7652f97f57172" ON "bundle" ("total_volume") `) - await db.query(`CREATE TABLE "bundle_author" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "account_id" text NOT NULL, "operator_id" text NOT NULL, "bundle_id" text NOT NULL, "domain_block_id" text NOT NULL, "domain_epoch_id" text NOT NULL, "epoch" integer NOT NULL, CONSTRAINT "PK_54ba310ce65f841f8948c5f230c" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_46a6d0670b490fef23fd56406e" ON "bundle_author" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_e419d11bdca9f6dc30dbb54298" ON "bundle_author" ("account_id") `) - await db.query(`CREATE INDEX "IDX_11c48ad072b8a2f5911a48edf5" ON "bundle_author" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_3ebc9908db2f3e287a5cc279af" ON "bundle_author" ("bundle_id") `) - await db.query(`CREATE INDEX "IDX_912b97c9a90df101e29578a423" ON "bundle_author" ("domain_block_id") `) - await db.query(`CREATE INDEX "IDX_d4e6fbfc88663decb33b8240ad" ON "bundle_author" ("domain_epoch_id") `) - await db.query(`CREATE INDEX "IDX_5b758804adabfdb0f507591dfd" ON "bundle_author" ("epoch") `) - await db.query(`CREATE TABLE "nominator" ("id" character varying NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "known_shares" numeric NOT NULL, "known_storage_fee_deposit" numeric NOT NULL, "pending_amount" numeric NOT NULL, "pending_storage_fee_deposit" numeric NOT NULL, "pending_effective_domain_epoch" integer NOT NULL, "total_withdrawal_amounts" numeric NOT NULL, "total_storage_fee_refund" numeric NOT NULL, "unlock_at_confirmed_domain_block_number" integer array NOT NULL, "pending_shares" numeric NOT NULL, "pending_storage_fee_refund" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_deposits_count" integer NOT NULL, "total_withdrawals_count" integer NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "active_epoch_count" integer NOT NULL, "status" character varying(8) NOT NULL, "pending_action" character varying(27) NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_7489b7a79b066f2660eab25f60b" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_917636e6d1130ea9506eaeafef" ON "nominator" ("account_id") `) - await db.query(`CREATE INDEX "IDX_b017cafe03fa79059bd8164c4e" ON "nominator" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_14374f281ccb6e72c55dab3c20" ON "nominator" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_43aeeb4c46d83dd78aa564c1b1" ON "nominator" ("status") `) - await db.query(`CREATE INDEX "IDX_12baadf2609f7b262a9a760d6d" ON "nominator" ("pending_action") `) - await db.query(`CREATE INDEX "IDX_7093d62ba7e5a6387a686e607e" ON "nominator" ("created_at") `) - await db.query(`CREATE INDEX "IDX_9ebc942736e76bde99ee21452f" ON "nominator" ("updated_at") `) - await db.query(`CREATE TABLE "deposit" ("id" character varying NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "nominator_id" text NOT NULL, "amount" numeric NOT NULL, "storage_fee_deposit" numeric NOT NULL, "total_amount" numeric NOT NULL, "total_withdrawn" numeric NOT NULL, "status" character varying(19) NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "extrinsic_hash" text NOT NULL, "epoch_deposited_at" integer NOT NULL, "domain_block_number_deposited_at" integer NOT NULL, "created_at" integer NOT NULL, "staked_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_6654b4be449dadfd9d03a324b61" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_9ced91570695137ec1d60c1a61" ON "deposit" ("account_id") `) - await db.query(`CREATE INDEX "IDX_8dc544cfa89fb544beea034396" ON "deposit" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_c2f2cfaa2b294c75d38a57e380" ON "deposit" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_b673efd4ec207b203e4d06abe9" ON "deposit" ("nominator_id") `) - await db.query(`CREATE INDEX "IDX_6f250bd43f2f631fcb2f589200" ON "deposit" ("status") `) - await db.query(`CREATE INDEX "IDX_a37222607a86476fa124313c51" ON "deposit" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_b1d1dadac59ff00a27b4ef18cf" ON "deposit" ("extrinsic_hash") `) - await db.query(`CREATE INDEX "IDX_09a8447db322b039b8a2bbf858" ON "deposit" ("epoch_deposited_at") `) - await db.query(`CREATE INDEX "IDX_8a397798592cd18d68388c4a58" ON "deposit" ("domain_block_number_deposited_at") `) - await db.query(`CREATE INDEX "IDX_11f6fba4dd0c1e03e2b61b1fd0" ON "deposit" ("created_at") `) - await db.query(`CREATE INDEX "IDX_e2d44319cdd3cfc595fac2ddd0" ON "deposit" ("staked_at") `) - await db.query(`CREATE INDEX "IDX_91527392d40d3066ddadda9804" ON "deposit" ("updated_at") `) - await db.query(`CREATE TABLE "withdrawal" ("id" character varying NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "nominator_id" text NOT NULL, "shares" numeric NOT NULL, "estimated_amount" numeric NOT NULL, "unlocked_amount" numeric NOT NULL, "unlocked_storage_fee" numeric NOT NULL, "total_amount" numeric NOT NULL, "status" character varying(16) NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "withdraw_extrinsic_hash" text NOT NULL, "unlock_extrinsic_hash" text NOT NULL, "epoch_withdrawal_requested_at" integer NOT NULL, "domain_block_number_withdrawal_requested_at" integer NOT NULL, "created_at" integer NOT NULL, "ready_at" integer NOT NULL, "unlocked_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_840e247aaad3fbd4e18129122a2" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_66c152572f8743fcd9ddecf2d2" ON "withdrawal" ("account_id") `) - await db.query(`CREATE INDEX "IDX_12de4d5556aa377a203cb5b1b2" ON "withdrawal" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_d5f5ce8abff91d6485c4f84e57" ON "withdrawal" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_09c9cf2ad9a4f3b674540dbfcf" ON "withdrawal" ("nominator_id") `) - await db.query(`CREATE INDEX "IDX_4028ed4e39f5c919fc3317882b" ON "withdrawal" ("status") `) - await db.query(`CREATE INDEX "IDX_e2749aaf8ba367458c360a7c73" ON "withdrawal" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_8fa0aebb91fd2aca95c4d80edb" ON "withdrawal" ("withdraw_extrinsic_hash") `) - await db.query(`CREATE INDEX "IDX_6e92f3b6d03f580800c31d78ea" ON "withdrawal" ("unlock_extrinsic_hash") `) - await db.query(`CREATE INDEX "IDX_8016e5d392912ecc0a425cecec" ON "withdrawal" ("epoch_withdrawal_requested_at") `) - await db.query(`CREATE INDEX "IDX_7207c1052c45aa41c118a01ed0" ON "withdrawal" ("domain_block_number_withdrawal_requested_at") `) - await db.query(`CREATE INDEX "IDX_51ee468e87a9f6eabde5bff0b2" ON "withdrawal" ("created_at") `) - await db.query(`CREATE INDEX "IDX_455defcfd4f47b6358358b77e7" ON "withdrawal" ("ready_at") `) - await db.query(`CREATE INDEX "IDX_803816d11e1df4712ef608af8f" ON "withdrawal" ("unlocked_at") `) - await db.query(`CREATE INDEX "IDX_1e01eb0b8dd1e8a22edc53859c" ON "withdrawal" ("updated_at") `) - await db.query(`CREATE TABLE "reward_event" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "amount" numeric NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "block_number" integer NOT NULL, "extrinsic_hash" text NOT NULL, CONSTRAINT "PK_212058fe00a4e4ad6f433833992" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_c58ade91dd87782e5587dea498" ON "reward_event" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_df32138995e155bfae4999ec17" ON "reward_event" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_32c335d826e7606e7dec0bcd59" ON "reward_event" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_dcefc6529930bf025676463725" ON "reward_event" ("block_number") `) - await db.query(`CREATE INDEX "IDX_53ac1d5bf31f15640e4d54820a" ON "reward_event" ("extrinsic_hash") `) - await db.query(`CREATE TABLE "stats" ("id" character varying NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "domains_count" integer NOT NULL, "operators_count" integer NOT NULL, "active_operators_count" integer NOT NULL, "slashed_operators_count" integer NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_c76e93dfef28ba9b6942f578ab1" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_0b3890ae3ba62ee77fe94af26e" ON "stats" ("block_number") `) - await db.query(`CREATE INDEX "IDX_ea4b2bcf5920a1b06f4454bb91" ON "stats" ("timestamp") `) - await db.query(`CREATE TABLE "stats_per_domain" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "operators_count" integer NOT NULL, "active_operators_count" integer NOT NULL, "slashed_operators_count" integer NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_0edbe67267dbe09a2a691517eee" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_3ac1b575a2dd3f64faedbde14b" ON "stats_per_domain" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_77118ccf015e661215115daaa5" ON "stats_per_domain" ("block_number") `) - await db.query(`CREATE INDEX "IDX_8eb7279e3beeab2964a533cd52" ON "stats_per_domain" ("timestamp") `) - await db.query(`CREATE TABLE "stats_per_operator" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_8cff6fe09e3e5510f0c90e42cf5" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_4a4bff6af8198a2f145ecf637f" ON "stats_per_operator" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_466db26acddfccae0a5d487d2c" ON "stats_per_operator" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_5ff9cc7e82a620057ef84c3826" ON "stats_per_operator" ("block_number") `) - await db.query(`CREATE INDEX "IDX_3260a5fceb17a3d817e5678d7f" ON "stats_per_operator" ("timestamp") `) - await db.query(`CREATE TABLE "stats_per_nominator" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "nominator_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_cbe18fadd4ac8162a3ea72ed7c0" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_1386cedecaa7459304ab08f3c9" ON "stats_per_nominator" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_0cbe32c48b0b8ce4cdaca40e25" ON "stats_per_nominator" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_f4eed0a147ec55fa63fee8cff8" ON "stats_per_nominator" ("nominator_id") `) - await db.query(`CREATE INDEX "IDX_b964a78d6565bfc5d4c2c298c1" ON "stats_per_nominator" ("block_number") `) - await db.query(`CREATE INDEX "IDX_4f0e392290ae255e10b0ff6500" ON "stats_per_nominator" ("timestamp") `) - await db.query(`CREATE TABLE "stats_per_account" ("id" character varying NOT NULL, "account_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "operators_count" integer NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_c2ae964c132359bab5903ede72f" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_d520535ebd3dceb62332d2dbaa" ON "stats_per_account" ("account_id") `) - await db.query(`CREATE INDEX "IDX_6689c432a28949dd81e6b57671" ON "stats_per_account" ("block_number") `) - await db.query(`CREATE INDEX "IDX_1fdf05c8198889b75485e872bf" ON "stats_per_account" ("timestamp") `) - } - - async down(db) { - await db.query(`DROP TABLE "domain"`) - await db.query(`DROP INDEX "public"."IDX_c1e90b3654ffe0a5544e502edb"`) - await db.query(`DROP INDEX "public"."IDX_c117722589b2b0f927aa16e25f"`) - await db.query(`DROP INDEX "public"."IDX_26a07113f90df161f919c7d5a6"`) - await db.query(`DROP INDEX "public"."IDX_36bfbe927612b8c0712c25f5a0"`) - await db.query(`DROP INDEX "public"."IDX_9f96c312a490b7a2a3d017721e"`) - await db.query(`DROP INDEX "public"."IDX_80867983eb3f6e204acfea4214"`) - await db.query(`DROP INDEX "public"."IDX_e3a1b94f40001682587d9b0a3d"`) - await db.query(`DROP INDEX "public"."IDX_6da91e378c5e17e2d467b592b0"`) - await db.query(`DROP INDEX "public"."IDX_35b49bec8ab1e3864de09a60d6"`) - await db.query(`DROP INDEX "public"."IDX_c3ac554ab7a2ed97d9a0af4083"`) - await db.query(`DROP TABLE "account"`) - await db.query(`DROP INDEX "public"."IDX_2740156ea8742b8df1ad9d9774"`) - await db.query(`DROP INDEX "public"."IDX_8bed31488e09ed64770378600b"`) - await db.query(`DROP TABLE "operator"`) - await db.query(`DROP INDEX "public"."IDX_ed3a1bcef6df98998f07a571a7"`) - await db.query(`DROP INDEX "public"."IDX_91b197ab29ad85b5e616289ea0"`) - await db.query(`DROP INDEX "public"."IDX_1c800426a1f738c1b202ff839f"`) - await db.query(`DROP INDEX "public"."IDX_51b6c3609906ff3cd25e39e1b2"`) - await db.query(`DROP INDEX "public"."IDX_b383ed84b5891bd42be1d2eefd"`) - await db.query(`DROP INDEX "public"."IDX_df2e0bb74daa727ab46b3292b0"`) - await db.query(`DROP INDEX "public"."IDX_c7fd0bf382a9832cf1db87827c"`) - await db.query(`DROP INDEX "public"."IDX_987b325e3ab4045266b612b032"`) - await db.query(`DROP INDEX "public"."IDX_d6260ed02d20cf8231ebb742d6"`) - await db.query(`DROP INDEX "public"."IDX_d6d18ca05472785030a7a3963b"`) - await db.query(`DROP TABLE "domain_block"`) - await db.query(`DROP INDEX "public"."IDX_4d9cd1246ac5e4eb3d87032a95"`) - await db.query(`DROP INDEX "public"."IDX_2c2a6c4f46c2585759e410aca8"`) - await db.query(`DROP INDEX "public"."IDX_f20da90e65426e4f794f848b81"`) - await db.query(`DROP INDEX "public"."IDX_cc1b0fc775b917ea6223b8602e"`) - await db.query(`DROP INDEX "public"."IDX_eb1b10f35bffbce1185f4ac3f3"`) - await db.query(`DROP INDEX "public"."IDX_162c14bd69f437bed7e4f71bd8"`) - await db.query(`DROP INDEX "public"."IDX_43ace0c9890ef82e3eb90fe405"`) - await db.query(`DROP INDEX "public"."IDX_a884257019c36496b853d50d3c"`) - await db.query(`DROP INDEX "public"."IDX_64aebba834dae120aead88ff33"`) - await db.query(`DROP INDEX "public"."IDX_d53bbe077c18c36b918abc40ff"`) - await db.query(`DROP TABLE "domain_epoch"`) - await db.query(`DROP INDEX "public"."IDX_333f88cae9e28d581d763fcd3a"`) - await db.query(`DROP INDEX "public"."IDX_49d0353f55bd117f11a6d6b10e"`) - await db.query(`DROP INDEX "public"."IDX_feacf6e5472e742480e182fead"`) - await db.query(`DROP INDEX "public"."IDX_d2800b9e4f55e70c2dbf50c180"`) - await db.query(`DROP INDEX "public"."IDX_4c04931070a2b4b5c86aa12503"`) - await db.query(`DROP INDEX "public"."IDX_fef96292239cebf57a521d0264"`) - await db.query(`DROP INDEX "public"."IDX_89e03f524980b405de261570bb"`) - await db.query(`DROP INDEX "public"."IDX_14aad4eb1f052ff1198ed69aa9"`) - await db.query(`DROP INDEX "public"."IDX_dd129bbbbffb90b197efdd59f0"`) - await db.query(`DROP INDEX "public"."IDX_77df3788bfba37edba3a23da00"`) - await db.query(`DROP INDEX "public"."IDX_d047d4eb28fd592bdfc1f398ae"`) - await db.query(`DROP INDEX "public"."IDX_bbc9922495360081a8c591b312"`) - await db.query(`DROP TABLE "bundle"`) - await db.query(`DROP INDEX "public"."IDX_82b7b684e1b50da245f72d6020"`) - await db.query(`DROP INDEX "public"."IDX_0033c9f116ee25b5ebb8d24222"`) - await db.query(`DROP INDEX "public"."IDX_704516bcbc02fe10ce28e8e262"`) - await db.query(`DROP INDEX "public"."IDX_b5c951f317cc0451d9d3c21aaa"`) - await db.query(`DROP INDEX "public"."IDX_006e8a93183443a738f7c5968b"`) - await db.query(`DROP INDEX "public"."IDX_5c848822e75fbe863d43231468"`) - await db.query(`DROP INDEX "public"."IDX_33b73ddabaa5e322cff6ab15b1"`) - await db.query(`DROP INDEX "public"."IDX_e49c7ec4d50ca7652f97f57172"`) - await db.query(`DROP TABLE "bundle_author"`) - await db.query(`DROP INDEX "public"."IDX_46a6d0670b490fef23fd56406e"`) - await db.query(`DROP INDEX "public"."IDX_e419d11bdca9f6dc30dbb54298"`) - await db.query(`DROP INDEX "public"."IDX_11c48ad072b8a2f5911a48edf5"`) - await db.query(`DROP INDEX "public"."IDX_3ebc9908db2f3e287a5cc279af"`) - await db.query(`DROP INDEX "public"."IDX_912b97c9a90df101e29578a423"`) - await db.query(`DROP INDEX "public"."IDX_d4e6fbfc88663decb33b8240ad"`) - await db.query(`DROP INDEX "public"."IDX_5b758804adabfdb0f507591dfd"`) - await db.query(`DROP TABLE "nominator"`) - await db.query(`DROP INDEX "public"."IDX_917636e6d1130ea9506eaeafef"`) - await db.query(`DROP INDEX "public"."IDX_b017cafe03fa79059bd8164c4e"`) - await db.query(`DROP INDEX "public"."IDX_14374f281ccb6e72c55dab3c20"`) - await db.query(`DROP INDEX "public"."IDX_43aeeb4c46d83dd78aa564c1b1"`) - await db.query(`DROP INDEX "public"."IDX_12baadf2609f7b262a9a760d6d"`) - await db.query(`DROP INDEX "public"."IDX_7093d62ba7e5a6387a686e607e"`) - await db.query(`DROP INDEX "public"."IDX_9ebc942736e76bde99ee21452f"`) - await db.query(`DROP TABLE "deposit"`) - await db.query(`DROP INDEX "public"."IDX_9ced91570695137ec1d60c1a61"`) - await db.query(`DROP INDEX "public"."IDX_8dc544cfa89fb544beea034396"`) - await db.query(`DROP INDEX "public"."IDX_c2f2cfaa2b294c75d38a57e380"`) - await db.query(`DROP INDEX "public"."IDX_b673efd4ec207b203e4d06abe9"`) - await db.query(`DROP INDEX "public"."IDX_6f250bd43f2f631fcb2f589200"`) - await db.query(`DROP INDEX "public"."IDX_a37222607a86476fa124313c51"`) - await db.query(`DROP INDEX "public"."IDX_b1d1dadac59ff00a27b4ef18cf"`) - await db.query(`DROP INDEX "public"."IDX_09a8447db322b039b8a2bbf858"`) - await db.query(`DROP INDEX "public"."IDX_8a397798592cd18d68388c4a58"`) - await db.query(`DROP INDEX "public"."IDX_11f6fba4dd0c1e03e2b61b1fd0"`) - await db.query(`DROP INDEX "public"."IDX_e2d44319cdd3cfc595fac2ddd0"`) - await db.query(`DROP INDEX "public"."IDX_91527392d40d3066ddadda9804"`) - await db.query(`DROP TABLE "withdrawal"`) - await db.query(`DROP INDEX "public"."IDX_66c152572f8743fcd9ddecf2d2"`) - await db.query(`DROP INDEX "public"."IDX_12de4d5556aa377a203cb5b1b2"`) - await db.query(`DROP INDEX "public"."IDX_d5f5ce8abff91d6485c4f84e57"`) - await db.query(`DROP INDEX "public"."IDX_09c9cf2ad9a4f3b674540dbfcf"`) - await db.query(`DROP INDEX "public"."IDX_4028ed4e39f5c919fc3317882b"`) - await db.query(`DROP INDEX "public"."IDX_e2749aaf8ba367458c360a7c73"`) - await db.query(`DROP INDEX "public"."IDX_8fa0aebb91fd2aca95c4d80edb"`) - await db.query(`DROP INDEX "public"."IDX_6e92f3b6d03f580800c31d78ea"`) - await db.query(`DROP INDEX "public"."IDX_8016e5d392912ecc0a425cecec"`) - await db.query(`DROP INDEX "public"."IDX_7207c1052c45aa41c118a01ed0"`) - await db.query(`DROP INDEX "public"."IDX_51ee468e87a9f6eabde5bff0b2"`) - await db.query(`DROP INDEX "public"."IDX_455defcfd4f47b6358358b77e7"`) - await db.query(`DROP INDEX "public"."IDX_803816d11e1df4712ef608af8f"`) - await db.query(`DROP INDEX "public"."IDX_1e01eb0b8dd1e8a22edc53859c"`) - await db.query(`DROP TABLE "reward_event"`) - await db.query(`DROP INDEX "public"."IDX_c58ade91dd87782e5587dea498"`) - await db.query(`DROP INDEX "public"."IDX_df32138995e155bfae4999ec17"`) - await db.query(`DROP INDEX "public"."IDX_32c335d826e7606e7dec0bcd59"`) - await db.query(`DROP INDEX "public"."IDX_dcefc6529930bf025676463725"`) - await db.query(`DROP INDEX "public"."IDX_53ac1d5bf31f15640e4d54820a"`) - await db.query(`DROP TABLE "stats"`) - await db.query(`DROP INDEX "public"."IDX_0b3890ae3ba62ee77fe94af26e"`) - await db.query(`DROP INDEX "public"."IDX_ea4b2bcf5920a1b06f4454bb91"`) - await db.query(`DROP TABLE "stats_per_domain"`) - await db.query(`DROP INDEX "public"."IDX_3ac1b575a2dd3f64faedbde14b"`) - await db.query(`DROP INDEX "public"."IDX_77118ccf015e661215115daaa5"`) - await db.query(`DROP INDEX "public"."IDX_8eb7279e3beeab2964a533cd52"`) - await db.query(`DROP TABLE "stats_per_operator"`) - await db.query(`DROP INDEX "public"."IDX_4a4bff6af8198a2f145ecf637f"`) - await db.query(`DROP INDEX "public"."IDX_466db26acddfccae0a5d487d2c"`) - await db.query(`DROP INDEX "public"."IDX_5ff9cc7e82a620057ef84c3826"`) - await db.query(`DROP INDEX "public"."IDX_3260a5fceb17a3d817e5678d7f"`) - await db.query(`DROP TABLE "stats_per_nominator"`) - await db.query(`DROP INDEX "public"."IDX_1386cedecaa7459304ab08f3c9"`) - await db.query(`DROP INDEX "public"."IDX_0cbe32c48b0b8ce4cdaca40e25"`) - await db.query(`DROP INDEX "public"."IDX_f4eed0a147ec55fa63fee8cff8"`) - await db.query(`DROP INDEX "public"."IDX_b964a78d6565bfc5d4c2c298c1"`) - await db.query(`DROP INDEX "public"."IDX_4f0e392290ae255e10b0ff6500"`) - await db.query(`DROP TABLE "stats_per_account"`) - await db.query(`DROP INDEX "public"."IDX_d520535ebd3dceb62332d2dbaa"`) - await db.query(`DROP INDEX "public"."IDX_6689c432a28949dd81e6b57671"`) - await db.query(`DROP INDEX "public"."IDX_1fdf05c8198889b75485e872bf"`) - } -} diff --git a/indexers/staking-squid/docker-compose.yml b/indexers/staking-squid/docker-compose.yml deleted file mode 100644 index 837064906..000000000 --- a/indexers/staking-squid/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -version: "3" - -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: staking-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "${DB_PORT}:5432" - # command: ["postgres", "-c", "log_statement=all"] -# volumes: -# - ./data/db:/var/lib/postgresql/data - diff --git a/indexers/staking-squid/package.json b/indexers/staking-squid/package.json index d5f58b42c..761117eab 100644 --- a/indexers/staking-squid/package.json +++ b/indexers/staking-squid/package.json @@ -1,13 +1,10 @@ { "name": "staking-squid", + "version": "1.0.0", "private": true, "engines": { "node": ">=16" }, - "scripts": { - "build": "rm -rf lib && tsc", - "deploy": "sqd deploy --org autonomys-labs ." - }, "repository": { "type": "git", "url": "https://github.com/autonomys/astral" @@ -16,6 +13,18 @@ "name": "Autonomys", "url": "https://www.autonomys.xyz" }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, + "scripts": { + "typegen": "sqd typegen", + "codegen": "sqd codegen", + "migration": "sqd migration:generate", + "build": "rm -rf lib && tsc", + "process": "sqd process", + "deploy": "sqd deploy --org autonomys-labs .", + "format": "prettier --write 'src/**/*.{js,ts,css,md,json}' --config ./.prettierrc" + }, "dependencies": { "@autonomys/auto-consensus": "^0.2.0", "@autonomys/auto-utils": "^0.2.0", @@ -32,6 +41,7 @@ "@subsquid/substrate-metadata-explorer": "^3.1.2", "@subsquid/substrate-typegen": "^8.1.0", "@subsquid/typeorm-codegen": "^2.0.0", + "@subsquid/substrate-runtime": "^2.0.0", "@types/node": "^20.12.7", "typescript": "^5.4.5" } diff --git a/indexers/staking-squid/scripts/docker-run.sh b/indexers/staking-squid/scripts/docker-run.sh deleted file mode 100644 index 1947733d9..000000000 --- a/indexers/staking-squid/scripts/docker-run.sh +++ /dev/null @@ -1,5 +0,0 @@ -set -e -docker build . --target processor -t squid-processor -# make sure the port matches .env. -# For Linux, add --add-host=host.docker.internal:host-gateway -docker run --rm -e DB_HOST=host.docker.internal --env-file=.env squid-processor \ No newline at end of file diff --git a/indexers/staking-squid/scripts/sub-client.js b/indexers/staking-squid/scripts/sub-client.js deleted file mode 100644 index 87ba38a3c..000000000 --- a/indexers/staking-squid/scripts/sub-client.js +++ /dev/null @@ -1,42 +0,0 @@ -const WebSocket = require('ws') -const { createClient } = require('graphql-ws'); - -const port = process.env.GQL_PORT || 4350 -const host = process.env.GQL_HOST || 'localhost' -const proto = process.env.GQL_PROTO || 'ws' - - -const client = createClient({ - webSocketImpl: WebSocket, - url: `${proto}://${host}:${port}/graphql`, -}); - -client.subscribe( - { - query: ` - subscription { - transfers(limit: 5, orderBy: timestamp_DESC) { - amount - blockNumber - from { - id - } - to { - id - } - } - } - `, - }, - { - next: (data) => { - console.log(`New transfers: ${JSON.stringify(data)}`); - }, - error: (error) => { - console.error('error', error); - }, - complete: () => { - console.log('done!'); - }, - } -); \ No newline at end of file diff --git a/indexers/staking-squid/src/blocks/index.ts b/indexers/staking-squid/src/blocks/index.ts index 6ca078d75..c17afafda 100644 --- a/indexers/staking-squid/src/blocks/index.ts +++ b/indexers/staking-squid/src/blocks/index.ts @@ -1,20 +1,20 @@ -import type { ApiPromise } from "@autonomys/auto-utils"; -import { Store } from "@subsquid/typeorm-store"; -import { processExtrinsics } from "../extrinsics"; -import type { Ctx, CtxBlock } from "../processor"; -import { logBlock } from "../utils"; -import { Cache, load, save } from "../utils/cache"; +import type { ApiPromise } from '@autonomys/auto-utils' +import { Store } from '@subsquid/typeorm-store' +import { processExtrinsics } from '../extrinsics' +import type { Ctx, CtxBlock } from '../processor' +import { logBlock } from '../utils' +import { Cache, load, save } from '../utils/cache' export async function processBlocks(ctx: Ctx, api: ApiPromise) { - let cache: Cache = await load(ctx); - logBlock(ctx.blocks); + let cache: Cache = await load(ctx) + logBlock(ctx.blocks) for (let block of ctx.blocks) { - cache = await processBlock(cache, api, block); + cache = await processBlock(cache, api, block) } - await save(ctx, cache); + await save(ctx, cache) } async function processBlock(cache: Cache, api: ApiPromise, block: CtxBlock) { - return await processExtrinsics(cache, api, block, block.extrinsics); + return await processExtrinsics(cache, api, block, block.extrinsics) } diff --git a/indexers/staking-squid/src/events/bundle.ts b/indexers/staking-squid/src/events/bundle.ts index 4b2f6f71b..f535fe7a7 100644 --- a/indexers/staking-squid/src/events/bundle.ts +++ b/indexers/staking-squid/src/events/bundle.ts @@ -1,4 +1,4 @@ -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { createBundle, createBundleAuthor, @@ -6,58 +6,55 @@ import { getOrCreateDomain, getOrCreateDomainEpoch, getOrCreateOperator, -} from "../storage"; -import { createDomainBlock } from "../storage/domainBlock"; -import { ExecutionReceipt, SealedBundleHeader } from "../types/v1"; -import { blockUID, bundleUID, getBlockNumber, getTimestamp } from "../utils"; -import { Cache, LastBlockBundleIndexKey } from "../utils/cache"; +} from '../storage' +import { createDomainBlock } from '../storage/domainBlock' +import { ExecutionReceipt, SealedBundleHeader } from '../types/v1' +import { blockUID, bundleUID, getBlockNumber, getTimestamp } from '../utils' +import { Cache, LastBlockBundleIndexKey } from '../utils/cache' export function processBundleStoredEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { domainId, bundleAuthor } = event.args; - const domainIdNum = Number(domainId); - const operatorId = Number(bundleAuthor); + const { domainId, bundleAuthor } = event.args + const domainIdNum = Number(domainId) + const operatorId = Number(bundleAuthor) - const sealedHeader = extrinsic.call?.args.opaqueBundle - .sealedHeader as SealedBundleHeader; - const domain = getOrCreateDomain(cache, block, domainIdNum); - const operator = getOrCreateOperator(cache, block, operatorId); - const account = getOrCreateAccount(cache, block, operator.accountId); + const sealedHeader = extrinsic.call?.args.opaqueBundle.sealedHeader as SealedBundleHeader + const domain = getOrCreateDomain(cache, block, domainIdNum) + const operator = getOrCreateOperator(cache, block, operatorId) + const account = getOrCreateAccount(cache, block, operator.accountId) - const receipt = sealedHeader.header.receipt as ExecutionReceipt; - const { transfers } = receipt; + const receipt = sealedHeader.header.receipt as ExecutionReceipt + const { transfers } = receipt const totalTransfersIn = transfers.transfersIn.reduce( (acc, [, amount]) => acc + BigInt(amount), - BigInt(0) - ); - const transfersInCount = transfers.transfersIn.length; + BigInt(0), + ) + const transfersInCount = transfers.transfersIn.length const totalTransfersOut = transfers.transfersOut.reduce( (acc, [, amount]) => acc + BigInt(amount), - BigInt(0) - ); - const transfersOutCount = transfers.transfersOut.length; - - const totalRejectedTransfersClaimed = - transfers.rejectedTransfersClaimed.reduce( - (acc, [, amount]) => acc + BigInt(amount), - BigInt(0) - ); - const rejectedTransfersClaimedCount = - transfers.rejectedTransfersClaimed.length; + BigInt(0), + ) + const transfersOutCount = transfers.transfersOut.length + + const totalRejectedTransfersClaimed = transfers.rejectedTransfersClaimed.reduce( + (acc, [, amount]) => acc + BigInt(amount), + BigInt(0), + ) + const rejectedTransfersClaimedCount = transfers.rejectedTransfersClaimed.length const totalTransfersRejected = transfers.transfersRejected.reduce( (acc, [, amount]) => acc + BigInt(amount), - BigInt(0) - ); - const transfersRejectedCount = transfers.transfersRejected.length; + BigInt(0), + ) + const transfersRejectedCount = transfers.transfersRejected.length - const totalVolume = totalTransfersIn + totalTransfersOut; + const totalVolume = totalTransfersIn + totalTransfersOut const { domainBlockNumber, @@ -66,94 +63,68 @@ export function processBundleStoredEvent( consensusBlockNumber, consensusBlockHash, blockFees, - } = receipt; - - const keyIdLastBlockBundleIndex: LastBlockBundleIndexKey = `lastBlockBundleIndex:${domainId}-${domainBlockHash}`; - const lastBlockBundleIndex = cache.internalKeyStore.get( - keyIdLastBlockBundleIndex - ); - const blockBundleIndex = lastBlockBundleIndex - ? parseInt(lastBlockBundleIndex) + 1 - : 0; - cache.internalKeyStore.set( - keyIdLastBlockBundleIndex, - blockBundleIndex.toString() - ); - - const epoch = domain.completedEpoch; - const domainEpoch = getOrCreateDomainEpoch(cache, block, domainId, epoch, { - epoch, + } = receipt + + const keyIdLastBlockBundleIndex: LastBlockBundleIndexKey = `lastBlockBundleIndex:${domainId}-${domainBlockHash}` + const lastBlockBundleIndex = cache.internalKeyStore.get(keyIdLastBlockBundleIndex) + const blockBundleIndex = lastBlockBundleIndex ? parseInt(lastBlockBundleIndex) + 1 : 0 + cache.internalKeyStore.set(keyIdLastBlockBundleIndex, blockBundleIndex.toString()) + + const domainEpoch = getOrCreateDomainEpoch(cache, block, domainId, domain.completedEpoch, { blockNumberStart: Number(domainBlockNumber), timestampStart: getTimestamp(block), consensusBlockNumberStart: getBlockNumber(block), consensusBlockHashStart: block.header.hash, - }); - domainEpoch.blockNumberEnd = Number(domainBlockNumber); - domainEpoch.timestampEnd = getTimestamp(block); - domainEpoch.consensusBlockNumberEnd = getBlockNumber(block); - domainEpoch.consensusBlockHashEnd = block.header.hash; - domainEpoch.blockCount = - domainEpoch.blockNumberEnd - domainEpoch.blockNumberStart + 1; + }) + domainEpoch.blockNumberEnd = Number(domainBlockNumber) + domainEpoch.timestampEnd = getTimestamp(block) + domainEpoch.consensusBlockNumberEnd = getBlockNumber(block) + domainEpoch.consensusBlockHashEnd = block.header.hash + domainEpoch.blockCount = domainEpoch.blockNumberEnd - domainEpoch.blockNumberStart + 1 domainEpoch.epochDuration = BigInt( - domainEpoch.timestampEnd.getTime() - domainEpoch.timestampStart.getTime() - ); - domainEpoch.updatedAt = getBlockNumber(block); - - cache.domainEpochs.set(domainEpoch.id, domainEpoch); - - let bundle = cache.bundles.get( - bundleUID(domainId, domainBlockHash, blockBundleIndex) - ); - let domainBlock = cache.domainBlocks.get( - blockUID(domainId, domainBlockNumber) - ); + domainEpoch.timestampEnd.getTime() - domainEpoch.timestampStart.getTime(), + ) + domainEpoch.updatedAt = getBlockNumber(block) + + cache.domainEpochs.set(domainEpoch.id, domainEpoch) + + let bundle = cache.bundles.get(bundleUID(domainId, domainBlockHash, blockBundleIndex)) + let domainBlock = cache.domainBlocks.get(blockUID(domainId, domainBlockNumber)) if (!domainBlock) { - domainBlock = createDomainBlock( - block, - domainId, - domainBlockNumber, - domainBlockHash, - { - domainEpochId: domainEpoch.id, - extrinsicRoot: domainBlockExtrinsicRoot, - epoch: domain.completedEpoch, - consensusBlockNumber: Number(consensusBlockNumber), - consensusBlockHash, - } - ); - cache.domainBlocks.set(domainBlock.id, domainBlock); + domainBlock = createDomainBlock(block, domainId, domainBlockNumber, domainBlockHash, { + domainEpochId: domainEpoch.id, + extrinsicRoot: domainBlockExtrinsicRoot, + epoch: domain.completedEpoch, + consensusBlockNumber: Number(consensusBlockNumber), + consensusBlockHash, + }) + cache.domainBlocks.set(domainBlock.id, domainBlock) } if (!bundle) { - bundle = createBundle( - domain.id, - domainBlock.id, + bundle = createBundle(domain.id, domainBlock.id, domainBlockHash, blockBundleIndex, { + domainBlockId: domainBlock.id, + domainEpochId: domainEpoch.id, + domainBlockNumber: Number(domainBlockNumber), domainBlockHash, - blockBundleIndex, - { - domainBlockId: domainBlock.id, - domainEpochId: domainEpoch.id, - domainBlockNumber: Number(domainBlockNumber), - domainBlockHash, - domainBlockExtrinsicRoot, - epoch: domain.completedEpoch, - consensusBlockNumber: Number(consensusBlockNumber), - consensusBlockHash, - totalTransfersIn, - transfersInCount, - totalTransfersOut, - transfersOutCount, - totalRejectedTransfersClaimed, - rejectedTransfersClaimedCount, - totalTransfersRejected, - transfersRejectedCount, - totalVolume, - consensusStorageFee: BigInt(blockFees.consensusStorageFee), - domainExecutionFee: BigInt(blockFees.domainExecutionFee), - burnedBalance: BigInt(blockFees.burnedBalance), - } - ); - cache.bundles.set(bundle.id, bundle); + domainBlockExtrinsicRoot, + epoch: domain.completedEpoch, + consensusBlockNumber: Number(consensusBlockNumber), + consensusBlockHash, + totalTransfersIn, + transfersInCount, + totalTransfersOut, + transfersOutCount, + totalRejectedTransfersClaimed, + rejectedTransfersClaimedCount, + totalTransfersRejected, + transfersRejectedCount, + totalVolume, + consensusStorageFee: BigInt(blockFees.consensusStorageFee), + domainExecutionFee: BigInt(blockFees.domainExecutionFee), + burnedBalance: BigInt(blockFees.burnedBalance), + }) + cache.bundles.set(bundle.id, bundle) const bundleAuthor = createBundleAuthor( domain.id, @@ -164,9 +135,9 @@ export function processBundleStoredEvent( domain.completedEpoch, { domainEpochId: domainEpoch.id, - } - ); - cache.bundleAuthors.set(bundleAuthor.id, bundleAuthor); + }, + ) + cache.bundleAuthors.set(bundleAuthor.id, bundleAuthor) domain.lastDomainBlockNumber = Number(domainBlockNumber); domain.totalTransfersIn += totalTransfersIn; @@ -183,45 +154,45 @@ export function processBundleStoredEvent( domain.totalBurnedBalance += BigInt(blockFees.burnedBalance); domain.bundleCount++; domain.currentEpochDuration = domainEpoch.epochDuration; - if (epoch > 0) { + if (domain.completedEpoch > 0) { const lastEpoch = getOrCreateDomainEpoch( cache, block, domainId, - epoch - 1 + domain.completedEpoch - 1 ); const lastEpochTimestampEnd = lastEpoch.timestampEnd.getTime(); domain.lastEpochDuration = lastEpoch.epochDuration; - if (epoch > 6) { + if (domain.completedEpoch > 6) { domain.last6EpochsDuration = BigInt( lastEpochTimestampEnd - getOrCreateDomainEpoch( cache, block, domainId, - epoch - 6 + domain.completedEpoch - 6 ).timestampEnd.getTime() ); } - if (epoch > 144) { + if (domain.completedEpoch > 144) { domain.last144EpochDuration = BigInt( lastEpochTimestampEnd - getOrCreateDomainEpoch( cache, block, domainId, - epoch - 144 + domain.completedEpoch - 144 ).timestampEnd.getTime() ); } - if (epoch > 1000) { + if (domain.completedEpoch > 1000) { domain.last1kEpochDuration = BigInt( lastEpochTimestampEnd - getOrCreateDomainEpoch( cache, block, domainId, - epoch - 1000 + domain.completedEpoch - 1000 ).timestampEnd.getTime() ); } @@ -231,25 +202,25 @@ export function processBundleStoredEvent( cache.domains.set(domain.id, domain); } - operator.totalTransfersIn += totalTransfersIn; - operator.transfersInCount += transfersInCount; - operator.totalTransfersOut += totalTransfersOut; - operator.transfersOutCount += transfersOutCount; - operator.totalRejectedTransfersClaimed += totalRejectedTransfersClaimed; - operator.rejectedTransfersClaimedCount += rejectedTransfersClaimedCount; - operator.totalTransfersRejected += totalTransfersRejected; - operator.transfersRejectedCount += transfersRejectedCount; - operator.totalConsensusStorageFee += BigInt(blockFees.consensusStorageFee); - operator.totalDomainExecutionFee += BigInt(blockFees.domainExecutionFee); - operator.totalBurnedBalance += BigInt(blockFees.burnedBalance); - operator.totalVolume += totalVolume; - operator.bundleCount++; - operator.lastBundleAt = getBlockNumber(block); - operator.updatedAt = getBlockNumber(block); - - cache.operators.set(operator.id, operator); - - cache.isModified = true; - - return cache; + operator.totalTransfersIn += totalTransfersIn + operator.transfersInCount += transfersInCount + operator.totalTransfersOut += totalTransfersOut + operator.transfersOutCount += transfersOutCount + operator.totalRejectedTransfersClaimed += totalRejectedTransfersClaimed + operator.rejectedTransfersClaimedCount += rejectedTransfersClaimedCount + operator.totalTransfersRejected += totalTransfersRejected + operator.transfersRejectedCount += transfersRejectedCount + operator.totalConsensusStorageFee += BigInt(blockFees.consensusStorageFee) + operator.totalDomainExecutionFee += BigInt(blockFees.domainExecutionFee) + operator.totalBurnedBalance += BigInt(blockFees.burnedBalance) + operator.totalVolume += totalVolume + operator.bundleCount++ + operator.lastBundleAt = getBlockNumber(block) + operator.updatedAt = getBlockNumber(block) + + cache.operators.set(operator.id, operator) + + cache.isModified = true + + return cache } diff --git a/indexers/staking-squid/src/events/domain.ts b/indexers/staking-squid/src/events/domain.ts index 2b8200002..edde46e75 100644 --- a/indexers/staking-squid/src/events/domain.ts +++ b/indexers/staking-squid/src/events/domain.ts @@ -1,22 +1,18 @@ -import type { CtxBlock, CtxEvent } from "../processor"; -import { getOrCreateDomain } from "../storage"; -import { Cache } from "../utils/cache"; +import type { CtxBlock, CtxEvent } from '../processor' +import { getOrCreateDomain } from '../storage' +import { Cache } from '../utils/cache' -export function processDomainInstantiatedEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const { domainId, completedEpochIndex } = event.args; - const completedEpoch = Number(completedEpochIndex ?? 0); +export function processDomainInstantiatedEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const { domainId, completedEpochIndex } = event.args + const completedEpoch = Number(completedEpochIndex ?? 0) const domain = getOrCreateDomain(cache, block, domainId, { completedEpoch, - }); + }) - cache.domains.set(domain.id, domain); + cache.domains.set(domain.id, domain) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/staking-squid/src/events/epoch.ts b/indexers/staking-squid/src/events/epoch.ts index a37c1f8cb..d35ebed79 100644 --- a/indexers/staking-squid/src/events/epoch.ts +++ b/indexers/staking-squid/src/events/epoch.ts @@ -1,9 +1,5 @@ -import { - operators as getOperators, - parseDeposit, - parseWithdrawal, -} from "@autonomys/auto-consensus"; -import type { ApiPromise } from "@autonomys/auto-utils"; +import { operators as getOperators, parseDeposit, parseWithdrawal } from '@autonomys/auto-consensus' +import type { ApiPromise } from '@autonomys/auto-utils' import { DepositStatus, DomainRuntime, @@ -12,8 +8,8 @@ import { OperatorPendingAction, OperatorStatus, WithdrawalStatus, -} from "../model"; -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; +} from '../model' +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { createStats, createStatsPerAccount, @@ -24,83 +20,81 @@ import { getOrCreateDomain, getOrCreateNominator, getOrCreateOperator, -} from "../storage"; -import { getBlockNumber, SHARES_CALCULATION_MULTIPLIER } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../storage' +import { getBlockNumber, SHARES_CALCULATION_MULTIPLIER } from '../utils' +import { Cache } from '../utils/cache' export async function processEpochTransitionEvent( cache: Cache, api: ApiPromise, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { domainId, completedEpochIndex } = event.args; - const domain = getOrCreateDomain(cache, block, domainId); - const completedEpoch = Number(completedEpochIndex); - const currentBlockNumber = getBlockNumber(block); + const { domainId, completedEpochIndex } = event.args + const domain = getOrCreateDomain(cache, block, domainId) + const completedEpoch = Number(completedEpochIndex) + const currentBlockNumber = getBlockNumber(block) - const apiAt = await api.at(block.header.hash); + const apiAt = await api.at(block.header.hash) const [domainRegistry, operatorsAll] = await Promise.all([ apiAt.query.domains.domainRegistry.entries(), getOperators(apiAt), - ]); + ]) const parsedDomains = domainRegistry.map((domain) => ({ domainId: (domain[0].toHuman() as string[])[0], ...(domain[1].toJSON() as Omit< { - domainId: string; - ownerAccountId: string; + domainId: string + ownerAccountId: string domainConfig: { - domainName: string; - runtimeId: number; + domainName: string + runtimeId: number operatorAllowList: { - operators: string[]; - }; - }; - domainRuntimeInfo: object; + operators: string[] + } + } + domainRuntimeInfo: object }, - "domainId" + 'domainId' >), - })); + })) const deposits = await Promise.all( - operatorsAll.map((o) => apiAt.query.domains.deposits.entries(o.operatorId)) - ).then((d) => d.flat().map((d) => parseDeposit(d))); + operatorsAll.map((o) => apiAt.query.domains.deposits.entries(o.operatorId)), + ).then((d) => d.flat().map((d) => parseDeposit(d))) const withdrawals = await Promise.all( - operatorsAll.map((o) => - apiAt.query.domains.withdrawals.entries(o.operatorId) - ) - ).then((w) => w.flat().map((w) => parseWithdrawal(w))); + operatorsAll.map((o) => apiAt.query.domains.withdrawals.entries(o.operatorId)), + ).then((w) => w.flat().map((w) => parseWithdrawal(w))) const allOperators = operatorsAll.filter( - (o) => o.operatorDetails.currentDomainId === BigInt(domainId) - ); + (o) => o.operatorDetails.currentDomainId === BigInt(domainId), + ) for (const pDomain of parsedDomains) { - const accountId = pDomain.ownerAccountId; - const _domain = getOrCreateDomain(cache, block, Number(pDomain.domainId)); + const accountId = pDomain.ownerAccountId + const _domain = getOrCreateDomain(cache, block, Number(pDomain.domainId)) - cache.accounts.set(accountId, getOrCreateAccount(cache, block, accountId)); + cache.accounts.set(accountId, getOrCreateAccount(cache, block, accountId)) - _domain.accountId = accountId; - _domain.name = pDomain.domainConfig.domainName; - _domain.runtimeId = pDomain.domainConfig.runtimeId; + _domain.accountId = accountId + _domain.name = pDomain.domainConfig.domainName + _domain.runtimeId = pDomain.domainConfig.runtimeId - const stringifiedRuntime = JSON.stringify(pDomain.domainRuntimeInfo); - _domain.runtime = stringifiedRuntime.includes("AutoId") + const stringifiedRuntime = JSON.stringify(pDomain.domainRuntimeInfo) + _domain.runtime = stringifiedRuntime.includes('AutoId') ? DomainRuntime.AutoId - : DomainRuntime.EVM; - _domain.runtimeInfo = stringifiedRuntime; - _domain.updatedAt = currentBlockNumber; + : DomainRuntime.EVM + _domain.runtimeInfo = stringifiedRuntime + _domain.updatedAt = currentBlockNumber - cache.domains.set(_domain.id, _domain); + cache.domains.set(_domain.id, _domain) } for (const operator of allOperators) { - const op = getOrCreateOperator(cache, block, Number(operator.operatorId)); + const op = getOrCreateOperator(cache, block, Number(operator.operatorId)) const { currentEpochRewards, @@ -108,195 +102,161 @@ export async function processEpochTransitionEvent( currentTotalStake, totalStorageFeeDeposit, status, - } = operator.operatorDetails; + } = operator.operatorDetails - const rawStatus = JSON.stringify(status); - op.currentEpochRewards = currentEpochRewards; - op.currentTotalShares = currentTotalShares; - op.currentTotalStake = currentTotalStake; - op.currentStorageFeeDeposit = totalStorageFeeDeposit; - op.rawStatus = rawStatus; - op.updatedAt = currentBlockNumber; + const rawStatus = JSON.stringify(status) + op.currentEpochRewards = currentEpochRewards + op.currentTotalShares = currentTotalShares + op.currentTotalStake = currentTotalStake + op.currentStorageFeeDeposit = totalStorageFeeDeposit + op.rawStatus = rawStatus + op.updatedAt = currentBlockNumber op.currentSharePrice = op.currentTotalShares > BigInt(0) - ? (op.currentTotalStake * SHARES_CALCULATION_MULTIPLIER) / - op.currentTotalShares - : BigInt(0); + ? (op.currentTotalStake * SHARES_CALCULATION_MULTIPLIER) / op.currentTotalShares + : BigInt(0) - op.accumulatedEpochRewards += op.currentEpochRewards; - op.accumulatedEpochStake += op.currentTotalStake; - op.accumulatedEpochStorageFeeDeposit += op.currentStorageFeeDeposit; - op.accumulatedEpochShares += op.currentTotalShares; + op.accumulatedEpochRewards += op.currentEpochRewards + op.accumulatedEpochStake += op.currentTotalStake + op.accumulatedEpochStorageFeeDeposit += op.currentStorageFeeDeposit + op.accumulatedEpochShares += op.currentTotalShares - cache.operators.set(op.id, op); + cache.operators.set(op.id, op) try { const _status = JSON.parse(rawStatus) as { - registered?: null; + registered?: null deregistered?: { - domainEpoch: [number, number]; - unlockAtConfirmedDomainBlockNumber: number; - }; - }; + domainEpoch: [number, number] + unlockAtConfirmedDomainBlockNumber: number + } + } if ( _status.deregistered && - _status.deregistered.unlockAtConfirmedDomainBlockNumber <= - domain.lastDomainBlockNumber + _status.deregistered.unlockAtConfirmedDomainBlockNumber <= domain.lastDomainBlockNumber ) { - op.status = OperatorStatus.DEREGISTERED; - op.pendingAction = OperatorPendingAction.READY_FOR_UNLOCK_NOMINATOR; - cache.operators.set(op.id, op); + op.status = OperatorStatus.DEREGISTERED + op.pendingAction = OperatorPendingAction.READY_FOR_UNLOCK_NOMINATOR + cache.operators.set(op.id, op) Array.from(cache.nominators.values()) .filter( (n) => - (n.status === NominatorStatus.PENDING || - n.status === NominatorStatus.STAKED) && - n.operatorId === op.id + (n.status === NominatorStatus.PENDING || n.status === NominatorStatus.STAKED) && + n.operatorId === op.id, ) .forEach((n) => { - n.status = NominatorStatus.PENDING; - n.pendingAction = - NominatorPendingAction.PENDING_DEREGISTRATION_LOCK; - n.updatedAt = currentBlockNumber; - cache.nominators.set(n.id, n); - }); + n.status = NominatorStatus.PENDING + n.pendingAction = NominatorPendingAction.PENDING_DEREGISTRATION_LOCK + n.updatedAt = currentBlockNumber + cache.nominators.set(n.id, n) + }) Array.from(cache.withdrawals.values()) - .filter( - (w) => - w.status === WithdrawalStatus.PENDING_LOCK && - w.domainId === domain.id - ) + .filter((w) => w.status === WithdrawalStatus.PENDING_LOCK && w.domainId === domain.id) .forEach((w) => { - w.status = WithdrawalStatus.PENDING_OPERATOR; - w.updatedAt = currentBlockNumber; - cache.withdrawals.set(w.id, w); - }); + w.status = WithdrawalStatus.PENDING_OPERATOR + w.updatedAt = currentBlockNumber + cache.withdrawals.set(w.id, w) + }) } } catch (e) { - console.error( - "Error parsing operator status in processEpochTransitionEvent", - e - ); + console.error('Error parsing operator status in processEpochTransitionEvent', e) } } - domain.currentTotalStake = BigInt(0); - domain.currentStorageFeeDeposit = BigInt(0); - domain.accumulatedEpochStake = BigInt(0); - domain.accumulatedEpochStorageFeeDeposit = BigInt(0); + domain.currentTotalStake = BigInt(0) + domain.currentStorageFeeDeposit = BigInt(0) + domain.accumulatedEpochStake = BigInt(0) + domain.accumulatedEpochStorageFeeDeposit = BigInt(0) allOperators.forEach((o) => { - domain.currentTotalStake += o.operatorDetails.currentTotalStake; - domain.currentStorageFeeDeposit += o.operatorDetails.totalStorageFeeDeposit; - domain.accumulatedEpochStake += o.operatorDetails.currentTotalStake; - domain.accumulatedEpochStorageFeeDeposit += - o.operatorDetails.totalStorageFeeDeposit; - }); + domain.currentTotalStake += o.operatorDetails.currentTotalStake + domain.currentStorageFeeDeposit += o.operatorDetails.totalStorageFeeDeposit + domain.accumulatedEpochStake += o.operatorDetails.currentTotalStake + domain.accumulatedEpochStorageFeeDeposit += o.operatorDetails.totalStorageFeeDeposit + }) - domain.completedEpoch = completedEpoch; - domain.updatedAt = currentBlockNumber; + domain.completedEpoch = completedEpoch + domain.updatedAt = currentBlockNumber - cache.domains.set(domain.id, domain); + cache.domains.set(domain.id, domain) Array.from(cache.operators.values()) - .filter( - (o) => o.status === OperatorStatus.REGISTERED && o.domainId === domain.id - ) + .filter((o) => o.status === OperatorStatus.REGISTERED && o.domainId === domain.id) .forEach((o) => { - o.activeEpochCount++; - o.updatedAt = currentBlockNumber; - cache.operators.set(o.id, o); - }); + o.activeEpochCount++ + o.updatedAt = currentBlockNumber + cache.operators.set(o.id, o) + }) Array.from(cache.operators.values()) - .filter( - (o) => o.status === OperatorStatus.PENDING && o.domainId === domain.id - ) + .filter((o) => o.status === OperatorStatus.PENDING && o.domainId === domain.id) .forEach((o) => { - o.status = OperatorStatus.REGISTERED; - o.pendingAction = OperatorPendingAction.NO_ACTION_REQUIRED; - o.updatedAt = currentBlockNumber; - cache.operators.set(o.id, o); - }); + o.status = OperatorStatus.REGISTERED + o.pendingAction = OperatorPendingAction.NO_ACTION_REQUIRED + o.updatedAt = currentBlockNumber + cache.operators.set(o.id, o) + }) Array.from(cache.nominators.values()) - .filter( - (n) => n.status === NominatorStatus.PENDING && n.domainId === domain.id - ) + .filter((n) => n.status === NominatorStatus.PENDING && n.domainId === domain.id) .forEach((n) => { - n.status = NominatorStatus.STAKED; - n.pendingAction = NominatorPendingAction.NO_ACTION_REQUIRED; - n.updatedAt = currentBlockNumber; - cache.nominators.set(n.id, n); - }); + n.status = NominatorStatus.STAKED + n.pendingAction = NominatorPendingAction.NO_ACTION_REQUIRED + n.updatedAt = currentBlockNumber + cache.nominators.set(n.id, n) + }) Array.from(cache.deposits.values()) - .filter( - (d) => d.status === DepositStatus.PENDING && d.domainId === domain.id - ) + .filter((d) => d.status === DepositStatus.PENDING && d.domainId === domain.id) .forEach((d) => { - d.status = DepositStatus.DEPOSITED; - d.stakedAt = currentBlockNumber; - d.updatedAt = currentBlockNumber; - cache.deposits.set(d.id, d); - }); + d.status = DepositStatus.DEPOSITED + d.stakedAt = currentBlockNumber + d.updatedAt = currentBlockNumber + cache.deposits.set(d.id, d) + }) // Stats on epoch transition - const stats = createStats(cache, block); - cache.stats.set(stats.id, stats); + const stats = createStats(cache, block) + cache.stats.set(stats.id, stats) - const statsPerDomain = createStatsPerDomain(cache, block, domain); - cache.statsPerDomain.set(statsPerDomain.id, statsPerDomain); + const statsPerDomain = createStatsPerDomain(cache, block, domain) + cache.statsPerDomain.set(statsPerDomain.id, statsPerDomain) const operators = Array.from(cache.operators.values()).filter( (o) => o.domainId === domain.id && - (o.status === OperatorStatus.REGISTERED || - o.status === OperatorStatus.DEREGISTERED) - ); + (o.status === OperatorStatus.REGISTERED || o.status === OperatorStatus.DEREGISTERED), + ) for (const operator of operators) { - const statsPerOperator = createStatsPerOperator( - cache, - block, - domain, - operator - ); - cache.statsPerOperator.set(statsPerOperator.id, statsPerOperator); + const statsPerOperator = createStatsPerOperator(cache, block, domain, operator) + cache.statsPerOperator.set(statsPerOperator.id, statsPerOperator) const nominators = Array.from(cache.nominators.values()).filter( - (n) => n.operatorId === operator.id - ); + (n) => n.operatorId === operator.id, + ) for (const nominator of nominators) { - const statsPerNominator = createStatsPerNominator( - cache, - block, - domain, - operator, - nominator - ); - cache.statsPerNominator.set(statsPerNominator.id, statsPerNominator); - - const account = getOrCreateAccount(cache, block, nominator.accountId); - const statsPerAccount = createStatsPerAccount(cache, block, account); - cache.statsPerAccount.set(statsPerAccount.id, statsPerAccount); + const statsPerNominator = createStatsPerNominator(cache, block, domain, operator, nominator) + cache.statsPerNominator.set(statsPerNominator.id, statsPerNominator) + + const account = getOrCreateAccount(cache, block, nominator.accountId) + const statsPerAccount = createStatsPerAccount(cache, block, account) + cache.statsPerAccount.set(statsPerAccount.id, statsPerAccount) } } - const operatorsIds = allOperators.map((o) => o.operatorId.toString()); + const operatorsIds = allOperators.map((o) => o.operatorId.toString()) // Process all rpc chain deposits (ala nominators) - const allDeposits = deposits.filter((o) => - operatorsIds.includes(o.operatorId.toString()) - ); + const allDeposits = deposits.filter((o) => operatorsIds.includes(o.operatorId.toString())) for (const deposit of allDeposits) { - const operator = getOrCreateOperator(cache, block, deposit.operatorId); - const account = getOrCreateAccount(cache, block, deposit.account); + const operator = getOrCreateOperator(cache, block, deposit.operatorId) + const account = getOrCreateAccount(cache, block, deposit.account) const nominator = getOrCreateNominator( cache, block, @@ -307,60 +267,51 @@ export async function processEpochTransitionEvent( domainId: operator.domainId, operatorId: operator.id, }, - deposit.account - ); - nominator.knownShares = deposit.known.shares ?? BigInt(0); - nominator.knownStorageFeeDeposit = - deposit.known.storageFeeDeposit ?? BigInt(0); - nominator.pendingAmount = deposit.pending?.amount ?? BigInt(0); - nominator.pendingStorageFeeDeposit = - deposit.pending?.storageFeeDeposit ?? BigInt(0); - nominator.pendingEffectiveDomainEpoch = - deposit.pending?.effectiveDomainEpoch ?? 0; - - nominator.currentTotalStake = - nominator.knownShares * operator.currentSharePrice; + deposit.account, + ) + nominator.knownShares = deposit.known.shares ?? BigInt(0) + nominator.knownStorageFeeDeposit = deposit.known.storageFeeDeposit ?? BigInt(0) + nominator.pendingAmount = deposit.pending?.amount ?? BigInt(0) + nominator.pendingStorageFeeDeposit = deposit.pending?.storageFeeDeposit ?? BigInt(0) + nominator.pendingEffectiveDomainEpoch = deposit.pending?.effectiveDomainEpoch ?? 0 + + nominator.currentTotalStake = nominator.knownShares * operator.currentSharePrice nominator.currentStorageFeeDeposit = - nominator.knownStorageFeeDeposit + nominator.pendingStorageFeeDeposit; - nominator.currentTotalShares = nominator.knownShares; - nominator.currentSharePrice = operator.currentSharePrice; + nominator.knownStorageFeeDeposit + nominator.pendingStorageFeeDeposit + nominator.currentTotalShares = nominator.knownShares + nominator.currentSharePrice = operator.currentSharePrice - nominator.accumulatedEpochStake += nominator.currentTotalStake; - nominator.accumulatedEpochStorageFeeDeposit += - nominator.currentStorageFeeDeposit; - nominator.accumulatedEpochShares += nominator.currentTotalShares; - nominator.activeEpochCount++; + nominator.accumulatedEpochStake += nominator.currentTotalStake + nominator.accumulatedEpochStorageFeeDeposit += nominator.currentStorageFeeDeposit + nominator.accumulatedEpochShares += nominator.currentTotalShares + nominator.activeEpochCount++ - nominator.updatedAt = currentBlockNumber; + nominator.updatedAt = currentBlockNumber - cache.nominators.set(nominator.id, nominator); + cache.nominators.set(nominator.id, nominator) - account.currentTotalStake += nominator.currentTotalStake; - account.currentStorageFeeDeposit += nominator.currentStorageFeeDeposit; - account.currentTotalShares += nominator.currentTotalShares; + account.currentTotalStake += nominator.currentTotalStake + account.currentStorageFeeDeposit += nominator.currentStorageFeeDeposit + account.currentTotalShares += nominator.currentTotalShares account.currentSharePrice = account.currentTotalStake > BigInt(0) - ? (account.currentTotalStake * SHARES_CALCULATION_MULTIPLIER) / - account.currentTotalShares - : BigInt(0); + ? (account.currentTotalStake * SHARES_CALCULATION_MULTIPLIER) / account.currentTotalShares + : BigInt(0) - account.accumulatedEpochStake += nominator.currentTotalStake; - account.accumulatedEpochStorageFeeDeposit += - nominator.currentStorageFeeDeposit; - account.accumulatedEpochShares += nominator.currentTotalShares; + account.accumulatedEpochStake += nominator.currentTotalStake + account.accumulatedEpochStorageFeeDeposit += nominator.currentStorageFeeDeposit + account.accumulatedEpochShares += nominator.currentTotalShares - account.updatedAt = currentBlockNumber; + account.updatedAt = currentBlockNumber - cache.accounts.set(account.id, account); + cache.accounts.set(account.id, account) } // Process all rpc chain withdrawals - const allWithdrawals = withdrawals.filter((o) => - operatorsIds.includes(o.operatorId.toString()) - ); + const allWithdrawals = withdrawals.filter((o) => operatorsIds.includes(o.operatorId.toString())) for (const withdrawal of allWithdrawals) { - const operator = getOrCreateOperator(cache, block, withdrawal.operatorId); + const operator = getOrCreateOperator(cache, block, withdrawal.operatorId) const nominator = getOrCreateNominator( cache, block, @@ -371,42 +322,35 @@ export async function processEpochTransitionEvent( domainId: operator.domainId, operatorId: operator.id, }, - withdrawal.account - ); - nominator.totalWithdrawalAmounts = - withdrawal.totalWithdrawalAmount ?? BigInt(0); + withdrawal.account, + ) + nominator.totalWithdrawalAmounts = withdrawal.totalWithdrawalAmount ?? BigInt(0) nominator.totalStorageFeeRefund = withdrawal.withdrawals && Array.isArray(withdrawal.withdrawals) - ? withdrawal.withdrawals.reduce( - (acc, w) => acc + BigInt(w.storageFeeRefund), - BigInt(0) - ) - : BigInt(0); + ? withdrawal.withdrawals.reduce((acc, w) => acc + BigInt(w.storageFeeRefund), BigInt(0)) + : BigInt(0) nominator.unlockAtConfirmedDomainBlockNumber = withdrawal.withdrawals && Array.isArray(withdrawal.withdrawals) - ? withdrawal.withdrawals.map( - (w) => w.unlockAtConfirmedDomainBlockNumber - ) - : []; + ? withdrawal.withdrawals.map((w) => w.unlockAtConfirmedDomainBlockNumber) + : [] if (withdrawal.withdrawalInShares) { - nominator.pendingShares = - withdrawal.withdrawalInShares.shares ?? BigInt(0); + nominator.pendingShares = withdrawal.withdrawalInShares.shares ?? BigInt(0) nominator.pendingStorageFeeRefund = - withdrawal.withdrawalInShares.storageFeeRefund ?? BigInt(0); + withdrawal.withdrawalInShares.storageFeeRefund ?? BigInt(0) nominator.unlockAtConfirmedDomainBlockNumber = nominator.unlockAtConfirmedDomainBlockNumber.length > 0 ? [ withdrawal.withdrawalInShares.domainEpoch[1], ...nominator.unlockAtConfirmedDomainBlockNumber, ] - : [withdrawal.withdrawalInShares.domainEpoch[1]]; + : [withdrawal.withdrawalInShares.domainEpoch[1]] } - nominator.updatedAt = currentBlockNumber; + nominator.updatedAt = currentBlockNumber - cache.nominators.set(nominator.id, nominator); + cache.nominators.set(nominator.id, nominator) } - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/staking-squid/src/events/index.ts b/indexers/staking-squid/src/events/index.ts index 8de5f3a2a..e740f453a 100644 --- a/indexers/staking-squid/src/events/index.ts +++ b/indexers/staking-squid/src/events/index.ts @@ -1,35 +1,35 @@ -import type { ApiPromise } from "@autonomys/auto-utils"; -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; -import { events } from "../types"; -import { Cache } from "../utils/cache"; -import { processBundleStoredEvent } from "./bundle"; -import { processDomainInstantiatedEvent } from "./domain"; -import { processEpochTransitionEvent } from "./epoch"; +import type { ApiPromise } from '@autonomys/auto-utils' +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' +import { events } from '../types' +import { Cache } from '../utils/cache' +import { processBundleStoredEvent } from './bundle' +import { processDomainInstantiatedEvent } from './domain' +import { processEpochTransitionEvent } from './epoch' import { processOperatorNominatedEvent, processOperatorRewardedEvent, processOperatorSlashedEvent, processOperatorTaxCollectedEvent, -} from "./operator"; +} from './operator' import { processFundsUnlockedEvent, processNominatedStakedUnlockedEvent, processNominatorUnlockedEvent, processOperatorUnlockedEvent, processStorageFeeUnlockedEvent, -} from "./unlock"; -import { processWithdrewStakeEvent } from "./withdraw"; +} from './unlock' +import { processWithdrewStakeEvent } from './withdraw' export async function processEvents( cache: Cache, api: ApiPromise, block: CtxBlock, - extrinsic: CtxExtrinsic + extrinsic: CtxExtrinsic, ) { for (let event of extrinsic.events) { - cache = await processEvent(cache, api, block, extrinsic, event); + cache = await processEvent(cache, api, block, extrinsic, event) } - return cache; + return cache } async function processEvent( @@ -37,64 +37,53 @@ async function processEvent( api: ApiPromise, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { switch (event.name) { // new domain case events.domains.domainInstantiated.name: - return processDomainInstantiatedEvent(cache, block, event); + return processDomainInstantiatedEvent(cache, block, event) // epoch transition case events.domains.domainEpochCompleted.name: case events.domains.forceDomainEpochTransition.name: - return await processEpochTransitionEvent( - cache, - api, - block, - extrinsic, - event - ); + return await processEpochTransitionEvent(cache, api, block, extrinsic, event) // operator and nomination case events.domains.operatorNominated.name: - return processOperatorNominatedEvent(cache, block, extrinsic, event); + return processOperatorNominatedEvent(cache, block, extrinsic, event) // deposit and stake case events.domains.withdrewStake.name: - return processWithdrewStakeEvent(cache, block, extrinsic, event); + return processWithdrewStakeEvent(cache, block, extrinsic, event) // bundle case events.domains.bundleStored.name: - return processBundleStoredEvent(cache, block, extrinsic, event); + return processBundleStoredEvent(cache, block, extrinsic, event) // unlock case events.domains.operatorUnlocked.name: - return processOperatorUnlockedEvent(cache, block, extrinsic, event); + return processOperatorUnlockedEvent(cache, block, extrinsic, event) case events.domains.fundsUnlocked.name: - return processFundsUnlockedEvent(cache, block, extrinsic, event); + return processFundsUnlockedEvent(cache, block, extrinsic, event) case events.domains.nominatedStakedUnlocked.name: - return processNominatedStakedUnlockedEvent( - cache, - block, - extrinsic, - event - ); + return processNominatedStakedUnlockedEvent(cache, block, extrinsic, event) case events.domains.nominatorUnlocked.name: - return processNominatorUnlockedEvent(cache, block, extrinsic, event); + return processNominatorUnlockedEvent(cache, block, extrinsic, event) case events.domains.storageFeeUnlocked.name: - return processStorageFeeUnlockedEvent(cache, block, extrinsic, event); + return processStorageFeeUnlockedEvent(cache, block, extrinsic, event) // rewards and slashing case events.domains.operatorRewarded.name: - return processOperatorRewardedEvent(cache, block, extrinsic, event); + return processOperatorRewardedEvent(cache, block, extrinsic, event) case events.domains.operatorSlashed.name: - return processOperatorSlashedEvent(cache, block, extrinsic, event); + return processOperatorSlashedEvent(cache, block, extrinsic, event) // tax case events.domains.operatorTaxCollected.name: - return processOperatorTaxCollectedEvent(cache, block, extrinsic, event); + return processOperatorTaxCollectedEvent(cache, block, extrinsic, event) default: - return cache; + return cache } } diff --git a/indexers/staking-squid/src/events/operator.ts b/indexers/staking-squid/src/events/operator.ts index c46565109..d0db4dd8c 100644 --- a/indexers/staking-squid/src/events/operator.ts +++ b/indexers/staking-squid/src/events/operator.ts @@ -1,10 +1,5 @@ -import { - NominatorPendingAction, - NominatorStatus, - OperatorStatus, - WithdrawalStatus, -} from "../model"; -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; +import { NominatorPendingAction, NominatorStatus, OperatorStatus, WithdrawalStatus } from '../model' +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { createDeposit, createRewardEvent, @@ -12,48 +7,42 @@ import { getOrCreateDomain, getOrCreateNominator, getOrCreateOperator, -} from "../storage"; -import { events } from "../types"; -import { getBlockNumber, getCallSigner } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../storage' +import { events } from '../types' +import { getBlockNumber, getCallSigner } from '../utils' +import { Cache } from '../utils/cache' export function processOperatorNominatedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId } = event.args; - const operatorIdNum = Number(operatorId); - const address = getCallSigner(extrinsic.call); - const blockNumber = getBlockNumber(block); + const { operatorId } = event.args + const operatorIdNum = Number(operatorId) + const address = getCallSigner(extrinsic.call) + const blockNumber = getBlockNumber(block) const storageFeeDepositedEvent = extrinsic.events.find( - (e) => e.name === events.domains.storageFeeDeposited.name - ); + (e) => e.name === events.domains.storageFeeDeposited.name, + ) const operatorNominatedEvent = extrinsic.events.find( - (e) => e.name === events.domains.operatorNominated.name - ); + (e) => e.name === events.domains.operatorNominated.name, + ) - const amount = BigInt(operatorNominatedEvent?.args.amount ?? 0); - const storageFeeDeposit = BigInt(storageFeeDepositedEvent?.args.amount ?? 0); - const totalAmount = BigInt(amount + storageFeeDeposit); + const amount = BigInt(operatorNominatedEvent?.args.amount ?? 0) + const storageFeeDeposit = BigInt(storageFeeDepositedEvent?.args.amount ?? 0) + const totalAmount = BigInt(amount + storageFeeDeposit) - const account = getOrCreateAccount(cache, block, address); - const operator = getOrCreateOperator(cache, block, operatorIdNum, {}); - const domain = getOrCreateDomain(cache, block, operator.domainId); + const account = getOrCreateAccount(cache, block, address) + const operator = getOrCreateOperator(cache, block, operatorIdNum, {}) + const domain = getOrCreateDomain(cache, block, operator.domainId) - const nominator = getOrCreateNominator( - cache, - block, - extrinsic, - operatorIdNum, - { - domainId: domain.id, - accountId: account.id, - operatorId: operator.id, - } - ); + const nominator = getOrCreateNominator(cache, block, extrinsic, operatorIdNum, { + domainId: domain.id, + accountId: account.id, + operatorId: operator.id, + }) const deposit = createDeposit( block, @@ -71,61 +60,61 @@ export function processOperatorNominatedEvent( totalAmount, epochDepositedAt: domain.completedEpoch ?? 0, domainBlockNumberDepositedAt: domain.lastDomainBlockNumber ?? 0, - } - ); + }, + ) - operator.totalDeposits += totalAmount; - operator.updatedAt = blockNumber; - cache.operators.set(operator.id, operator); + operator.totalDeposits += totalAmount + operator.updatedAt = blockNumber + cache.operators.set(operator.id, operator) if (nominator.totalDepositsCount === 0) { - nominator.pendingAction = NominatorPendingAction.PENDING_EPOCH_CHANGE; + nominator.pendingAction = NominatorPendingAction.PENDING_EPOCH_CHANGE } - nominator.totalDeposits += totalAmount; - nominator.totalDepositsCount++; - nominator.updatedAt = blockNumber; - cache.nominators.set(nominator.id, nominator); + nominator.totalDeposits += totalAmount + nominator.totalDepositsCount++ + nominator.updatedAt = blockNumber + cache.nominators.set(nominator.id, nominator) - domain.totalDeposits += totalAmount; - domain.updatedAt = blockNumber; - cache.domains.set(domain.id, domain); + domain.totalDeposits += totalAmount + domain.updatedAt = blockNumber + cache.domains.set(domain.id, domain) - account.totalDeposits += totalAmount; - account.updatedAt = blockNumber; - cache.accounts.set(account.id, account); + account.totalDeposits += totalAmount + account.updatedAt = blockNumber + cache.accounts.set(account.id, account) - cache.deposits.set(deposit.id, deposit); + cache.deposits.set(deposit.id, deposit) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } export function processOperatorSlashedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId } = event.args; - const blockNumber = getBlockNumber(block); + const { operatorId } = event.args + const blockNumber = getBlockNumber(block) - const operator = getOrCreateOperator(cache, block, operatorId); + const operator = getOrCreateOperator(cache, block, operatorId) - operator.currentTotalStake = BigInt(0); - operator.currentStorageFeeDeposit = BigInt(0); - operator.status = OperatorStatus.SLASHED; - operator.updatedAt = blockNumber; - cache.operators.set(operator.id, operator); + operator.currentTotalStake = BigInt(0) + operator.currentStorageFeeDeposit = BigInt(0) + operator.status = OperatorStatus.SLASHED + operator.updatedAt = blockNumber + cache.operators.set(operator.id, operator) Array.from(cache.nominators.values()) .filter((n) => n.operatorId === operator.id) .forEach((n) => { - n.status = NominatorStatus.SLASHED; - n.pendingAction = NominatorPendingAction.NO_ACTION_REQUIRED; - n.updatedAt = blockNumber; - cache.nominators.set(n.id, n); - }); + n.status = NominatorStatus.SLASHED + n.pendingAction = NominatorPendingAction.NO_ACTION_REQUIRED + n.updatedAt = blockNumber + cache.nominators.set(n.id, n) + }) Array.from(cache.withdrawals.values()) .filter( @@ -133,79 +122,76 @@ export function processOperatorSlashedEvent( (w.status === WithdrawalStatus.PENDING_LOCK || w.status === WithdrawalStatus.PENDING_OPERATOR || w.status === WithdrawalStatus.READY) && - w.operatorId === operator.id + w.operatorId === operator.id, ) .forEach((w) => { - w.status = WithdrawalStatus.SLASHED; - w.updatedAt = blockNumber; - cache.withdrawals.set(w.id, w); - }); + w.status = WithdrawalStatus.SLASHED + w.updatedAt = blockNumber + cache.withdrawals.set(w.id, w) + }) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } export function processOperatorTaxCollectedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId, tax } = event.args; - const blockNumber = getBlockNumber(block); - const taxAmount = BigInt(tax); + const { operatorId, tax } = event.args + const blockNumber = getBlockNumber(block) + const taxAmount = BigInt(tax) - const operator = getOrCreateOperator(cache, block, operatorId); - const account = getOrCreateAccount(cache, block, operator.accountId); - const domain = getOrCreateDomain(cache, block, operator.domainId); + const operator = getOrCreateOperator(cache, block, operatorId) + const account = getOrCreateAccount(cache, block, operator.accountId) + const domain = getOrCreateDomain(cache, block, operator.domainId) - operator.totalTaxCollected += taxAmount; - operator.updatedAt = blockNumber; - cache.operators.set(operator.id, operator); + operator.totalTaxCollected += taxAmount + operator.updatedAt = blockNumber + cache.operators.set(operator.id, operator) - account.totalTaxCollected += taxAmount; - account.updatedAt = blockNumber; - cache.accounts.set(account.id, account); + account.totalTaxCollected += taxAmount + account.updatedAt = blockNumber + cache.accounts.set(account.id, account) - domain.totalTaxCollected += taxAmount; - domain.updatedAt = blockNumber; - cache.domains.set(domain.id, domain); + domain.totalTaxCollected += taxAmount + domain.updatedAt = blockNumber + cache.domains.set(domain.id, domain) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } export function processOperatorRewardedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId, reward } = event.args; - const amount = BigInt(reward); + const { operatorId, reward } = event.args + const amount = BigInt(reward) - const operator = getOrCreateOperator(cache, block, operatorId); - const domain = getOrCreateDomain(cache, block, operator.domainId); + const operator = getOrCreateOperator(cache, block, operatorId) + const domain = getOrCreateDomain(cache, block, operator.domainId) - operator.totalRewardsCollected += amount; - cache.operators.set(operator.id, operator); + operator.totalRewardsCollected += amount + cache.operators.set(operator.id, operator) - domain.totalRewardsCollected += amount; - cache.domains.set(domain.id, domain); + domain.totalRewardsCollected += amount + cache.domains.set(domain.id, domain) const operatorRewardedEvent = createRewardEvent(block, extrinsic, { operatorId: operator.id, domainId: operator.domainId, amount, - }); - cache.operatorRewardedEvents.set( - operatorRewardedEvent.id, - operatorRewardedEvent - ); + }) + cache.operatorRewardedEvents.set(operatorRewardedEvent.id, operatorRewardedEvent) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/staking-squid/src/events/unlock.ts b/indexers/staking-squid/src/events/unlock.ts index 2fb653b14..8824ab1b5 100644 --- a/indexers/staking-squid/src/events/unlock.ts +++ b/indexers/staking-squid/src/events/unlock.ts @@ -4,248 +4,243 @@ import { NominatorStatus, OperatorPendingAction, WithdrawalStatus, -} from "../model"; -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; +} from '../model' +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { getOrCreateAccount, getOrCreateDomain, getOrCreateNominator, getOrCreateOperator, -} from "../storage"; -import { getBlockNumber, getCallSigner } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../storage' +import { getBlockNumber, getCallSigner } from '../utils' +import { Cache } from '../utils/cache' export function processOperatorUnlockedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId } = event.args; - const operatorIdNum = Number(operatorId); - const address = getCallSigner(extrinsic.call); - const blockNumber = getBlockNumber(block); + const { operatorId } = event.args + const operatorIdNum = Number(operatorId) + const address = getCallSigner(extrinsic.call) + const blockNumber = getBlockNumber(block) - const operator = getOrCreateOperator(cache, block, operatorId); - const domain = getOrCreateDomain(cache, block, operator.domainId); - const account = getOrCreateAccount(cache, block, address); + const operator = getOrCreateOperator(cache, block, operatorId) + const domain = getOrCreateDomain(cache, block, operator.domainId) + const account = getOrCreateAccount(cache, block, address) - operator.pendingAction = OperatorPendingAction.NO_ACTION_REQUIRED; - operator.updatedAt = blockNumber; - cache.operators.set(operator.id, operator); + operator.pendingAction = OperatorPendingAction.NO_ACTION_REQUIRED + operator.updatedAt = blockNumber + cache.operators.set(operator.id, operator) Array.from(cache.nominators.values()) .filter( (n) => - (n.status === NominatorStatus.PENDING || - n.status === NominatorStatus.STAKED) && - n.operatorId === operator.id + (n.status === NominatorStatus.PENDING || n.status === NominatorStatus.STAKED) && + n.operatorId === operator.id, ) .forEach((n) => { - n.status = NominatorStatus.PENDING; - n.pendingAction = NominatorPendingAction.READY_TO_UNLOCK_ALL_FUNDS; - n.updatedAt = blockNumber; - cache.nominators.set(n.id, n); - }); + n.status = NominatorStatus.PENDING + n.pendingAction = NominatorPendingAction.READY_TO_UNLOCK_ALL_FUNDS + n.updatedAt = blockNumber + cache.nominators.set(n.id, n) + }) Array.from(cache.withdrawals.values()) - .filter( - (w) => - w.status === WithdrawalStatus.PENDING_OPERATOR && - w.domainId === domain.id - ) + .filter((w) => w.status === WithdrawalStatus.PENDING_OPERATOR && w.domainId === domain.id) .forEach((w) => { - w.status = WithdrawalStatus.READY; - w.readyAt = blockNumber; - w.updatedAt = blockNumber; - cache.withdrawals.set(w.id, w); - }); + w.status = WithdrawalStatus.READY + w.readyAt = blockNumber + w.updatedAt = blockNumber + cache.withdrawals.set(w.id, w) + }) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } export function processFundsUnlockedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId, nominatorId, amount } = event.args; - const operatorIdNum = Number(operatorId); - const nominatorIdNum = Number(nominatorId); - const address = getCallSigner(extrinsic.call); - const blockNumber = getBlockNumber(block); - const amountBigInt = BigInt(amount); - - const operator = getOrCreateOperator(cache, block, operatorId); - const domain = getOrCreateDomain(cache, block, operator.domainId); - const account = getOrCreateAccount(cache, block, address); - const nominator = getOrCreateNominator(cache, block, extrinsic, operatorId); + const { operatorId, nominatorId, amount } = event.args + const operatorIdNum = Number(operatorId) + const nominatorIdNum = Number(nominatorId) + const address = getCallSigner(extrinsic.call) + const blockNumber = getBlockNumber(block) + const amountBigInt = BigInt(amount) + + const operator = getOrCreateOperator(cache, block, operatorId) + const domain = getOrCreateDomain(cache, block, operator.domainId) + const account = getOrCreateAccount(cache, block, address) + const nominator = getOrCreateNominator(cache, block, extrinsic, operatorId) Array.from(cache.withdrawals.values()) .filter( (w) => w.status === WithdrawalStatus.PENDING_LOCK && w.operatorId === operator.id && - w.accountId === account.id + w.accountId === account.id, ) .forEach((w) => { - w.status = WithdrawalStatus.WITHDRAW; - w.unlockedAmount = amountBigInt; - w.unlockedAt = blockNumber; - w.updatedAt = blockNumber; - cache.withdrawals.set(w.id, w); - }); - - let amountToWithdraw = amountBigInt; + w.status = WithdrawalStatus.WITHDRAW + w.unlockedAmount = amountBigInt + w.unlockedAt = blockNumber + w.updatedAt = blockNumber + cache.withdrawals.set(w.id, w) + }) + + let amountToWithdraw = amountBigInt Array.from(cache.deposits.values()) .filter( (d) => d.status === DepositStatus.DEPOSITED && d.operatorId === operator.id && - d.accountId === account.id + d.accountId === account.id, ) .forEach((d) => { if (amountToWithdraw > 0) { if (amountToWithdraw > d.totalAmount) { - amountToWithdraw -= d.totalAmount; - d.totalWithdrawn = d.totalAmount; - d.status = DepositStatus.WITHDRAWN; + amountToWithdraw -= d.totalAmount + d.totalWithdrawn = d.totalAmount + d.status = DepositStatus.WITHDRAWN } else { - d.totalWithdrawn = amountToWithdraw; - d.status = DepositStatus.PARTIALLY_WITHDRAWN; - amountToWithdraw = BigInt(0); + d.totalWithdrawn = amountToWithdraw + d.status = DepositStatus.PARTIALLY_WITHDRAWN + amountToWithdraw = BigInt(0) } - d.updatedAt = blockNumber; - cache.deposits.set(d.id, d); + d.updatedAt = blockNumber + cache.deposits.set(d.id, d) } - }); + }) - domain.totalWithdrawals += amountBigInt; - account.totalWithdrawals += amountBigInt; - operator.totalWithdrawals += amountBigInt; - nominator.totalWithdrawals += amountBigInt; + domain.totalWithdrawals += amountBigInt + account.totalWithdrawals += amountBigInt + operator.totalWithdrawals += amountBigInt + nominator.totalWithdrawals += amountBigInt - cache.isModified = true; + cache.isModified = true - return cache; + return cache } export function processNominatedStakedUnlockedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId, nominatorId, unlockedAmount } = event.args; - const operatorIdNum = Number(operatorId); - const nominatorIdNum = Number(nominatorId); - const address = getCallSigner(extrinsic.call); - const blockNumber = getBlockNumber(block); - const unlockedAmountBigInt = BigInt(unlockedAmount); - let unlockedAmountBigIntLeft = unlockedAmountBigInt; - - const operator = getOrCreateOperator(cache, block, operatorId); - const domain = getOrCreateDomain(cache, block, operator.domainId); - const account = getOrCreateAccount(cache, block, address); - const nominator = getOrCreateNominator(cache, block, extrinsic, operatorId); + const { operatorId, nominatorId, unlockedAmount } = event.args + const operatorIdNum = Number(operatorId) + const nominatorIdNum = Number(nominatorId) + const address = getCallSigner(extrinsic.call) + const blockNumber = getBlockNumber(block) + const unlockedAmountBigInt = BigInt(unlockedAmount) + let unlockedAmountBigIntLeft = unlockedAmountBigInt + + const operator = getOrCreateOperator(cache, block, operatorId) + const domain = getOrCreateDomain(cache, block, operator.domainId) + const account = getOrCreateAccount(cache, block, address) + const nominator = getOrCreateNominator(cache, block, extrinsic, operatorId) const userOpenWithdrawals = Array.from(cache.withdrawals.values()).filter( (w) => w.status === WithdrawalStatus.PENDING_LOCK && w.operatorId === operator.id && - w.accountId === account.id - ); + w.accountId === account.id, + ) if (userOpenWithdrawals.length === 1) { - const w = userOpenWithdrawals[0]; - w.status = WithdrawalStatus.WITHDRAW; - w.unlockedAmount = unlockedAmountBigInt; - w.unlockedAt = blockNumber; - w.updatedAt = blockNumber; - cache.withdrawals.set(w.id, w); + const w = userOpenWithdrawals[0] + w.status = WithdrawalStatus.WITHDRAW + w.unlockedAmount = unlockedAmountBigInt + w.unlockedAt = blockNumber + w.updatedAt = blockNumber + cache.withdrawals.set(w.id, w) } else { userOpenWithdrawals.forEach((w) => { - w.status = WithdrawalStatus.WITHDRAW; + w.status = WithdrawalStatus.WITHDRAW if (unlockedAmountBigIntLeft > w.estimatedAmount) { - w.unlockedAmount = w.estimatedAmount; - unlockedAmountBigIntLeft -= w.estimatedAmount; + w.unlockedAmount = w.estimatedAmount + unlockedAmountBigIntLeft -= w.estimatedAmount } else { - w.unlockedAmount = unlockedAmountBigIntLeft; - unlockedAmountBigIntLeft = BigInt(0); + w.unlockedAmount = unlockedAmountBigIntLeft + unlockedAmountBigIntLeft = BigInt(0) } - w.unlockedAt = blockNumber; - w.updatedAt = blockNumber; - cache.withdrawals.set(w.id, w); - }); + w.unlockedAt = blockNumber + w.updatedAt = blockNumber + cache.withdrawals.set(w.id, w) + }) } - let amountToWithdraw = unlockedAmountBigInt; + let amountToWithdraw = unlockedAmountBigInt Array.from(cache.deposits.values()) .filter( (d) => d.status === DepositStatus.DEPOSITED && d.operatorId === operator.id && - d.accountId === account.id + d.accountId === account.id, ) .forEach((d) => { if (amountToWithdraw > 0) { if (amountToWithdraw > d.totalAmount) { - amountToWithdraw -= d.totalAmount; - d.totalWithdrawn = d.totalAmount; - d.status = DepositStatus.WITHDRAWN; + amountToWithdraw -= d.totalAmount + d.totalWithdrawn = d.totalAmount + d.status = DepositStatus.WITHDRAWN } else { - d.totalWithdrawn = amountToWithdraw; - d.status = DepositStatus.PARTIALLY_WITHDRAWN; - amountToWithdraw = BigInt(0); + d.totalWithdrawn = amountToWithdraw + d.status = DepositStatus.PARTIALLY_WITHDRAWN + amountToWithdraw = BigInt(0) } - d.updatedAt = blockNumber; - cache.deposits.set(d.id, d); + d.updatedAt = blockNumber + cache.deposits.set(d.id, d) } - }); + }) - domain.totalWithdrawals += unlockedAmountBigInt; - account.totalWithdrawals += unlockedAmountBigInt; - operator.totalWithdrawals += unlockedAmountBigInt; - nominator.totalWithdrawals += unlockedAmountBigInt; + domain.totalWithdrawals += unlockedAmountBigInt + account.totalWithdrawals += unlockedAmountBigInt + operator.totalWithdrawals += unlockedAmountBigInt + nominator.totalWithdrawals += unlockedAmountBigInt - cache.isModified = true; + cache.isModified = true - return cache; + return cache } export function processNominatorUnlockedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId, nominatorId } = event.args; - const operatorIdNum = Number(operatorId); - const nominatorIdNum = Number(nominatorId); - const address = getCallSigner(extrinsic.call); - const blockNumber = getBlockNumber(block); + const { operatorId, nominatorId } = event.args + const operatorIdNum = Number(operatorId) + const nominatorIdNum = Number(nominatorId) + const address = getCallSigner(extrinsic.call) + const blockNumber = getBlockNumber(block) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } export function processStorageFeeUnlockedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId, nominatorId, storageFee } = event.args; - const operatorIdNum = Number(operatorId); - const nominatorIdNum = Number(nominatorId); - const address = getCallSigner(extrinsic.call); - const blockNumber = getBlockNumber(block); - const storageFeeBigInt = BigInt(storageFee); + const { operatorId, nominatorId, storageFee } = event.args + const operatorIdNum = Number(operatorId) + const nominatorIdNum = Number(nominatorId) + const address = getCallSigner(extrinsic.call) + const blockNumber = getBlockNumber(block) + const storageFeeBigInt = BigInt(storageFee) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/staking-squid/src/events/withdraw.ts b/indexers/staking-squid/src/events/withdraw.ts index 05bbfdfcd..b4b8b78d0 100644 --- a/indexers/staking-squid/src/events/withdraw.ts +++ b/indexers/staking-squid/src/events/withdraw.ts @@ -1,48 +1,44 @@ -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { createWithdrawal, getOrCreateAccount, getOrCreateDomain, getOrCreateNominator, getOrCreateOperator, -} from "../storage"; -import { - getBlockNumber, - getCallSigner, - SHARES_CALCULATION_MULTIPLIER, -} from "../utils"; -import { Cache } from "../utils/cache"; +} from '../storage' +import { getBlockNumber, getCallSigner, SHARES_CALCULATION_MULTIPLIER } from '../utils' +import { Cache } from '../utils/cache' export function processWithdrewStakeEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId } = event.args; - const { shares = 0 } = extrinsic.call?.args ?? {}; - const address = getCallSigner(extrinsic.call); - const blockNumber = getBlockNumber(block); - const sharesBigInt = BigInt(shares); + const { operatorId } = event.args + const { shares = 0 } = extrinsic.call?.args ?? {} + const address = getCallSigner(extrinsic.call) + const blockNumber = getBlockNumber(block) + const sharesBigInt = BigInt(shares) - const account = getOrCreateAccount(cache, block, address); - cache.accounts.set(account.id, account); + const account = getOrCreateAccount(cache, block, address) + cache.accounts.set(account.id, account) - const operator = getOrCreateOperator(cache, block, Number(operatorId), {}); - cache.operators.set(operator.id, operator); + const operator = getOrCreateOperator(cache, block, Number(operatorId), {}) + cache.operators.set(operator.id, operator) - const domain = getOrCreateDomain(cache, block, operator.domainId); - cache.domains.set(domain.id, domain); + const domain = getOrCreateDomain(cache, block, operator.domainId) + cache.domains.set(domain.id, domain) const nominator = getOrCreateNominator(cache, block, extrinsic, operatorId, { domainId: domain.id, accountId: account.id, operatorId: operator.id, - }); - cache.nominators.set(nominator.id, nominator); + }) + cache.nominators.set(nominator.id, nominator) const estimatedAmount = - (operator.currentSharePrice * sharesBigInt) / SHARES_CALCULATION_MULTIPLIER; + (operator.currentSharePrice * sharesBigInt) / SHARES_CALCULATION_MULTIPLIER const withdrawal = createWithdrawal( block, extrinsic, @@ -58,28 +54,28 @@ export function processWithdrewStakeEvent( estimatedAmount, epochWithdrawalRequestedAt: domain.completedEpoch ?? 0, domainBlockNumberWithdrawalRequestedAt: domain.lastDomainBlockNumber ?? 0, - } - ); - cache.withdrawals.set(withdrawal.id, withdrawal); + }, + ) + cache.withdrawals.set(withdrawal.id, withdrawal) - nominator.totalWithdrawalsCount++; - nominator.totalEstimatedWithdrawals += estimatedAmount; - nominator.updatedAt = blockNumber; - cache.nominators.set(nominator.id, nominator); + nominator.totalWithdrawalsCount++ + nominator.totalEstimatedWithdrawals += estimatedAmount + nominator.updatedAt = blockNumber + cache.nominators.set(nominator.id, nominator) - operator.totalEstimatedWithdrawals += estimatedAmount; - operator.updatedAt = blockNumber; - cache.operators.set(operator.id, operator); + operator.totalEstimatedWithdrawals += estimatedAmount + operator.updatedAt = blockNumber + cache.operators.set(operator.id, operator) - account.totalEstimatedWithdrawals += estimatedAmount; - account.updatedAt = blockNumber; - cache.accounts.set(account.id, account); + account.totalEstimatedWithdrawals += estimatedAmount + account.updatedAt = blockNumber + cache.accounts.set(account.id, account) - domain.totalEstimatedWithdrawals += estimatedAmount; - domain.updatedAt = blockNumber; - cache.domains.set(domain.id, domain); + domain.totalEstimatedWithdrawals += estimatedAmount + domain.updatedAt = blockNumber + cache.domains.set(domain.id, domain) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/staking-squid/src/extrinsics/index.ts b/indexers/staking-squid/src/extrinsics/index.ts index 253a6ce55..34036832f 100644 --- a/indexers/staking-squid/src/extrinsics/index.ts +++ b/indexers/staking-squid/src/extrinsics/index.ts @@ -1,36 +1,36 @@ -import type { ApiPromise } from "@autonomys/auto-utils"; -import { processEvents } from "../events"; -import type { CtxBlock, CtxExtrinsic } from "../processor"; -import { calls } from "../types"; -import { Cache } from "../utils/cache"; -import { processDeregisterOperator, processRegisterOperator } from "./operator"; +import type { ApiPromise } from '@autonomys/auto-utils' +import { processEvents } from '../events' +import type { CtxBlock, CtxExtrinsic } from '../processor' +import { calls } from '../types' +import { Cache } from '../utils/cache' +import { processDeregisterOperator, processRegisterOperator } from './operator' export async function processExtrinsics( cache: Cache, api: ApiPromise, block: CtxBlock, - extrinsics: CtxExtrinsic[] + extrinsics: CtxExtrinsic[], ) { for (let extrinsic of extrinsics) { - cache = await processExtrinsic(cache, api, block, extrinsic); + cache = await processExtrinsic(cache, api, block, extrinsic) } - return cache; + return cache } export async function processExtrinsic( cache: Cache, api: ApiPromise, block: CtxBlock, - extrinsic: CtxExtrinsic + extrinsic: CtxExtrinsic, ) { switch (extrinsic.call?.name) { case calls.domains.registerOperator.name: - return processRegisterOperator(cache, block, extrinsic); + return processRegisterOperator(cache, block, extrinsic) case calls.domains.deregisterOperator.name: - return processDeregisterOperator(cache, block, extrinsic); + return processDeregisterOperator(cache, block, extrinsic) default: - return await processEvents(cache, api, block, extrinsic); + return await processEvents(cache, api, block, extrinsic) } } diff --git a/indexers/staking-squid/src/extrinsics/operator.ts b/indexers/staking-squid/src/extrinsics/operator.ts index eb514fafc..6325d3929 100644 --- a/indexers/staking-squid/src/extrinsics/operator.ts +++ b/indexers/staking-squid/src/extrinsics/operator.ts @@ -3,8 +3,8 @@ import { NominatorStatus, OperatorPendingAction, OperatorStatus, -} from "../model"; -import type { CtxBlock, CtxExtrinsic } from "../processor"; +} from '../model' +import type { CtxBlock, CtxExtrinsic } from '../processor' import { createDeposit, createNominator, @@ -13,64 +13,56 @@ import { getOrCreateAccount, getOrCreateDomain, getOrCreateOperator, -} from "../storage"; -import { events } from "../types"; -import { - getBlockNumber, - getCallSigner, - SHARES_CALCULATION_MULTIPLIER, -} from "../utils"; -import { Cache } from "../utils/cache"; - -export function processRegisterOperator( - cache: Cache, - block: CtxBlock, - extrinsic: CtxExtrinsic -) { - const { call, events: extrinsicEvents } = extrinsic; - const { domainId, amount, config } = call?.args ?? {}; - const { signingKey, minimumNominatorStake, nominationTax } = config ?? {}; - const address = getCallSigner(call); - const blockNumber = getBlockNumber(block); - const domainIdNum = Number(domainId ?? 0); +} from '../storage' +import { events } from '../types' +import { getBlockNumber, getCallSigner, SHARES_CALCULATION_MULTIPLIER } from '../utils' +import { Cache } from '../utils/cache' + +export function processRegisterOperator(cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic) { + const { call, events: extrinsicEvents } = extrinsic + const { domainId, amount, config } = call?.args ?? {} + const { signingKey, minimumNominatorStake, nominationTax } = config ?? {} + const address = getCallSigner(call) + const blockNumber = getBlockNumber(block) + const domainIdNum = Number(domainId ?? 0) const operatorRegisteredEvent = extrinsicEvents.find( - (e) => e.name === events.domains.operatorRegistered.name - ); - if (!operatorRegisteredEvent) return cache; + (e) => e.name === events.domains.operatorRegistered.name, + ) + if (!operatorRegisteredEvent) return cache const storageFeeDepositedEvent = extrinsicEvents.find( - (e) => e.name === events.domains.storageFeeDeposited.name - ); + (e) => e.name === events.domains.storageFeeDeposited.name, + ) - const operatorId = Number(operatorRegisteredEvent.args.operatorId ?? 0); - const storageFeeDeposit = BigInt(storageFeeDepositedEvent?.args.amount ?? 0); + const operatorId = Number(operatorRegisteredEvent.args.operatorId ?? 0) + const storageFeeDeposit = BigInt(storageFeeDepositedEvent?.args.amount ?? 0) const amountBigInt = BigInt(amount) > BigInt(storageFeeDeposit) ? BigInt(amount) - BigInt(storageFeeDeposit) - : BigInt(0); - const totalAmount = BigInt(amount); + : BigInt(0) + const totalAmount = BigInt(amount) - const domain = getOrCreateDomain(cache, block, domainIdNum); - const account = getOrCreateAccount(cache, block, address); + const domain = getOrCreateDomain(cache, block, domainIdNum) + const account = getOrCreateAccount(cache, block, address) const operator = createOperator(block, operatorId, { domainId: domain.id, accountId: account.id, - signingKey: signingKey ?? "", + signingKey: signingKey ?? '', minimumNominatorStake: BigInt(minimumNominatorStake ?? 0), nominationTax: nominationTax ?? 0, pendingAction: OperatorPendingAction.PENDING_REGISTRATION, - }); - cache.operators.set(operator.id, operator); + }) + cache.operators.set(operator.id, operator) const nominator = createNominator(block, extrinsic, operatorId, { domainId: domain.id, accountId: account.id, operatorId: operator.id, pendingAction: NominatorPendingAction.PENDING_EPOCH_CHANGE, - }); - cache.nominators.set(nominator.id, nominator); + }) + cache.nominators.set(nominator.id, nominator) const deposit = createDeposit( block, @@ -88,70 +80,64 @@ export function processRegisterOperator( totalAmount, epochDepositedAt: domain.completedEpoch ?? 0, domainBlockNumberDepositedAt: domain.lastDomainBlockNumber ?? 0, - } - ); - cache.deposits.set(deposit.id, deposit); + }, + ) + cache.deposits.set(deposit.id, deposit) - domain.totalDeposits += totalAmount; - domain.updatedAt = blockNumber; - cache.domains.set(domain.id, domain); + domain.totalDeposits += totalAmount + domain.updatedAt = blockNumber + cache.domains.set(domain.id, domain) - account.totalDeposits += totalAmount; - account.updatedAt = blockNumber; - cache.accounts.set(account.id, account); + account.totalDeposits += totalAmount + account.updatedAt = blockNumber + cache.accounts.set(account.id, account) - operator.totalDeposits += totalAmount; - operator.updatedAt = blockNumber; - cache.operators.set(operator.id, operator); + operator.totalDeposits += totalAmount + operator.updatedAt = blockNumber + cache.operators.set(operator.id, operator) - nominator.totalDeposits += totalAmount; - nominator.totalDepositsCount++; - nominator.updatedAt = blockNumber; - cache.nominators.set(nominator.id, nominator); + nominator.totalDeposits += totalAmount + nominator.totalDepositsCount++ + nominator.updatedAt = blockNumber + cache.nominators.set(nominator.id, nominator) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processDeregisterOperator( - cache: Cache, - block: CtxBlock, - extrinsic: CtxExtrinsic -) { - const { call, events: extrinsicEvents } = extrinsic; - const operatorId = Number(call?.args.operatorId ?? 0); - const blockNumber = getBlockNumber(block); +export function processDeregisterOperator(cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic) { + const { call, events: extrinsicEvents } = extrinsic + const operatorId = Number(call?.args.operatorId ?? 0) + const blockNumber = getBlockNumber(block) - const operator = getOrCreateOperator(cache, block, operatorId); - cache.operators.set(operator.id, operator); + const operator = getOrCreateOperator(cache, block, operatorId) + cache.operators.set(operator.id, operator) - const domain = getOrCreateDomain(cache, block, operator.domainId); - cache.domains.set(domain.id, domain); + const domain = getOrCreateDomain(cache, block, operator.domainId) + cache.domains.set(domain.id, domain) - const account = getOrCreateAccount(cache, block, operator.accountId); - cache.accounts.set(account.id, account); + const account = getOrCreateAccount(cache, block, operator.accountId) + cache.accounts.set(account.id, account) const operatorDeregisteredEvent = extrinsicEvents.find( - (e) => e.name === events.domains.operatorDeregistered.name - ); - if (!operatorDeregisteredEvent) return cache; + (e) => e.name === events.domains.operatorDeregistered.name, + ) + if (!operatorDeregisteredEvent) return cache - operator.currentTotalStake = BigInt(0); - operator.currentStorageFeeDeposit = BigInt(0); - operator.status = OperatorStatus.DEREGISTERED; + operator.currentTotalStake = BigInt(0) + operator.currentStorageFeeDeposit = BigInt(0) + operator.status = OperatorStatus.DEREGISTERED Array.from(cache.nominators.values()) .filter( (n) => - (n.status === NominatorStatus.STAKED || - n.status === NominatorStatus.PENDING) && - n.operatorId === operator.id + (n.status === NominatorStatus.STAKED || n.status === NominatorStatus.PENDING) && + n.operatorId === operator.id, ) .forEach((n) => { const estimatedAmount = - (operator.currentSharePrice * n.knownShares) / - SHARES_CALCULATION_MULTIPLIER; + (operator.currentSharePrice * n.knownShares) / SHARES_CALCULATION_MULTIPLIER const w = createWithdrawal( block, extrinsic, @@ -165,34 +151,33 @@ export function processDeregisterOperator( nominatorId: n.id, shares: n.knownShares, epochWithdrawalRequestedAt: domain.completedEpoch ?? 0, - domainBlockNumberWithdrawalRequestedAt: - domain.lastDomainBlockNumber ?? 0, + domainBlockNumberWithdrawalRequestedAt: domain.lastDomainBlockNumber ?? 0, estimatedAmount, - } - ); - cache.withdrawals.set(w.id, w); + }, + ) + cache.withdrawals.set(w.id, w) - n.status = NominatorStatus.PENDING; - n.totalWithdrawalsCount++; - n.updatedAt = blockNumber; - cache.nominators.set(n.id, n); + n.status = NominatorStatus.PENDING + n.totalWithdrawalsCount++ + n.updatedAt = blockNumber + cache.nominators.set(n.id, n) - operator.totalEstimatedWithdrawals += estimatedAmount; - operator.updatedAt = blockNumber; - cache.operators.set(operator.id, operator); + operator.totalEstimatedWithdrawals += estimatedAmount + operator.updatedAt = blockNumber + cache.operators.set(operator.id, operator) - account.totalEstimatedWithdrawals += estimatedAmount; - account.updatedAt = blockNumber; - cache.accounts.set(account.id, account); + account.totalEstimatedWithdrawals += estimatedAmount + account.updatedAt = blockNumber + cache.accounts.set(account.id, account) - domain.totalEstimatedWithdrawals += estimatedAmount; - domain.updatedAt = blockNumber; - cache.domains.set(domain.id, domain); - }); + domain.totalEstimatedWithdrawals += estimatedAmount + domain.updatedAt = blockNumber + cache.domains.set(domain.id, domain) + }) - cache.operators.set(operator.id, operator); + cache.operators.set(operator.id, operator) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/staking-squid/src/main.ts b/indexers/staking-squid/src/main.ts index 92c5f7e7f..1dea21441 100644 --- a/indexers/staking-squid/src/main.ts +++ b/indexers/staking-squid/src/main.ts @@ -1,15 +1,15 @@ -import { createConnection } from "@autonomys/auto-utils"; -import { TypeormDatabase } from "@subsquid/typeorm-store"; -import { assertNotNull } from "@subsquid/util-internal"; -import { processBlocks } from "./blocks"; -import { processor } from "./processor"; +import { createConnection } from '@autonomys/auto-utils' +import { TypeormDatabase } from '@subsquid/typeorm-store' +import { assertNotNull } from '@subsquid/util-internal' +import { processBlocks } from './blocks' +import { processor } from './processor' processor.run(new TypeormDatabase({ supportHotBlocks: true }), async (ctx) => { const api = await createConnection( - assertNotNull(process.env.RPC_CONSENSUS_HTTP, "No RPC_CONSENSUS_HTTP env") - ); + assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC_CONSENSUS_HTTP env'), + ) - await processBlocks(ctx, api); + await processBlocks(ctx, api) - await api.disconnect(); -}); + await api.disconnect() +}) diff --git a/indexers/staking-squid/src/model/generated/index.ts b/indexers/staking-squid/src/model/generated/index.ts deleted file mode 100644 index 671bf8a26..000000000 --- a/indexers/staking-squid/src/model/generated/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -export * from "./domain.model" -export * from "./_domainRuntime" -export * from "./account.model" -export * from "./operator.model" -export * from "./_operatorStatus" -export * from "./_operatorPendingAction" -export * from "./domainBlock.model" -export * from "./domainEpoch.model" -export * from "./bundle.model" -export * from "./bundleAuthor.model" -export * from "./nominator.model" -export * from "./_nominatorStatus" -export * from "./_nominatorPendingAction" -export * from "./deposit.model" -export * from "./_depositStatus" -export * from "./withdrawal.model" -export * from "./_withdrawalStatus" -export * from "./rewardEvent.model" -export * from "./stats.model" -export * from "./statsPerDomain.model" -export * from "./statsPerOperator.model" -export * from "./statsPerNominator.model" -export * from "./statsPerAccount.model" diff --git a/indexers/staking-squid/src/model/generated/marshal.ts b/indexers/staking-squid/src/model/generated/marshal.ts deleted file mode 100644 index 2cf1c3a8e..000000000 --- a/indexers/staking-squid/src/model/generated/marshal.ts +++ /dev/null @@ -1,149 +0,0 @@ -import assert from 'assert' - - -export interface Marshal { - fromJSON(value: unknown): T - toJSON(value: T): S -} - - -export const string: Marshal = { - fromJSON(value: unknown): string { - assert(typeof value === 'string', 'invalid String') - return value - }, - toJSON(value) { - return value - } -} - - -export const id = string - - -export const int: Marshal = { - fromJSON(value: unknown): number { - assert(Number.isInteger(value), 'invalid Int') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const float: Marshal = { - fromJSON(value: unknown): number { - assert(typeof value === 'number', 'invalid Float') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const boolean: Marshal = { - fromJSON(value: unknown): boolean { - assert(typeof value === 'boolean', 'invalid Boolean') - return value - }, - toJSON(value: boolean): boolean { - return value - } -} - - -export const bigint: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigInt') - return BigInt(value) - }, - toJSON(value: bigint): string { - return value.toString() - } -} - - -export const bigdecimal: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigDecimal') - return decimal.BigDecimal(value) - }, - toJSON(value: any): string { - return value.toString() - } -} - - -// credit - https://github.com/Urigo/graphql-scalars/blob/91b4ea8df891be8af7904cf84751930cc0c6613d/src/scalars/iso-date/validator.ts#L122 -const RFC_3339_REGEX = - /^(\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60))(\.\d{1,})?([Z])$/ - - -function isIsoDateTimeString(s: string): boolean { - return RFC_3339_REGEX.test(s) -} - - -export const datetime: Marshal = { - fromJSON(value: unknown): Date { - assert(typeof value === 'string', 'invalid DateTime') - assert(isIsoDateTimeString(value), 'invalid DateTime') - return new Date(value) - }, - toJSON(value: Date): string { - return value.toISOString() - } -} - - -export const bytes: Marshal = { - fromJSON(value: unknown): Buffer { - assert(typeof value === 'string', 'invalid Bytes') - assert(value.length % 2 === 0, 'invalid Bytes') - assert(/^0x[0-9a-f]+$/i.test(value), 'invalid Bytes') - return Buffer.from(value.slice(2), 'hex') - }, - toJSON(value: Uint8Array): string { - if (Buffer.isBuffer(value)) { - return '0x' + value.toString('hex') - } else { - return '0x' + Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString('hex') - } - } -} - - -export function fromList(list: unknown, f: (val: unknown) => T): T[] { - assert(Array.isArray(list)) - return list.map((val) => f(val)) -} - - -export function nonNull(val: T | undefined | null): T { - assert(val != null, 'non-nullable value is null') - return val -} - - -export function enumFromJson(json: unknown, enumObject: E): E[keyof E] { - assert(typeof json == 'string', 'invalid enum value') - let val = (enumObject as any)[json] - assert(typeof val == 'string', `invalid enum value`) - return val as any -} - - -const decimal = { - get BigDecimal(): any { - throw new Error('Package `@subsquid/big-decimal` is not installed') - } -} - - -try { - Object.defineProperty(decimal, "BigDecimal", { - value: require('@subsquid/big-decimal').BigDecimal - }) -} catch (e) {} diff --git a/indexers/staking-squid/src/model/index.ts b/indexers/staking-squid/src/model/index.ts deleted file mode 100644 index 73bfb2881..000000000 --- a/indexers/staking-squid/src/model/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./generated" diff --git a/indexers/staking-squid/src/processor.ts b/indexers/staking-squid/src/processor.ts index 50e485607..03f9b27e4 100644 --- a/indexers/staking-squid/src/processor.ts +++ b/indexers/staking-squid/src/processor.ts @@ -6,19 +6,14 @@ import { Call as _Call, Event as _Event, Extrinsic as _Extrinsic, -} from "@subsquid/substrate-processor"; -import { assertNotNull } from "@subsquid/util-internal"; -import { calls, events } from "./types"; +} from '@subsquid/substrate-processor' +import { assertNotNull } from '@subsquid/util-internal' +import { calls, events } from './types' export const processor = new SubstrateBatchProcessor() - .setGateway( - assertNotNull(process.env.CONSENSUS_GATEWAY, "No Gateway endpoint supplied") - ) + .setGateway(assertNotNull(process.env.CONSENSUS_GATEWAY, 'No Gateway endpoint supplied')) .setRpcEndpoint({ - url: assertNotNull( - process.env.RPC_CONSENSUS_HTTP, - "No RPC endpoint supplied" - ), + url: assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC endpoint supplied'), // More RPC connection options at https://docs.subsquid.io/substrate-indexing/setup/general/#set-data-source rateLimit: 10, }) @@ -94,15 +89,15 @@ export const processor = new SubstrateBatchProcessor() name: true, args: true, }, - }); + }) -export type Fields = SubstrateBatchProcessorFields; -export type Block = BlockHeader; -export type Event = _Event; -export type Call = _Call; -export type Extrinsic = _Extrinsic; -export type ProcessorContext = DataHandlerContext; -export type Ctx = ProcessorContext; -export type CtxBlock = Ctx["blocks"][0]; -export type CtxExtrinsic = CtxBlock["extrinsics"][0]; -export type CtxEvent = CtxExtrinsic["events"][0]; +export type Fields = SubstrateBatchProcessorFields +export type Block = BlockHeader +export type Event = _Event +export type Call = _Call +export type Extrinsic = _Extrinsic +export type ProcessorContext = DataHandlerContext +export type Ctx = ProcessorContext +export type CtxBlock = Ctx['blocks'][0] +export type CtxExtrinsic = CtxBlock['extrinsics'][0] +export type CtxEvent = CtxExtrinsic['events'][0] diff --git a/indexers/staking-squid/src/storage/account.ts b/indexers/staking-squid/src/storage/account.ts index c9e08675b..941ae5b17 100644 --- a/indexers/staking-squid/src/storage/account.ts +++ b/indexers/staking-squid/src/storage/account.ts @@ -1,14 +1,14 @@ -import { Account } from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber } from "../utils"; -import { Cache } from "../utils/cache"; +import { Account } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' export const createAccount = ( block: CtxBlock, address: string, - props: Partial = {} + props: Partial = {}, ): Account => { - const blockNumber = getBlockNumber(block); + const blockNumber = getBlockNumber(block) return new Account({ id: address, totalDeposits: props.totalDeposits ?? BigInt(0), @@ -20,23 +20,22 @@ export const createAccount = ( currentTotalShares: props.currentTotalShares ?? BigInt(0), currentSharePrice: props.currentSharePrice ?? BigInt(0), accumulatedEpochStake: props.accumulatedEpochStake ?? BigInt(0), - accumulatedEpochStorageFeeDeposit: - props.accumulatedEpochStorageFeeDeposit ?? BigInt(0), + accumulatedEpochStorageFeeDeposit: props.accumulatedEpochStorageFeeDeposit ?? BigInt(0), accumulatedEpochShares: props.accumulatedEpochShares ?? BigInt(0), createdAt: blockNumber, updatedAt: blockNumber, - }); -}; + }) +} export const getOrCreateAccount = ( cache: Cache, block: CtxBlock, address: string, - props: Partial = {} + props: Partial = {}, ): Account => { - const account = cache.accounts.get(address); + const account = cache.accounts.get(address) - if (!account) return createAccount(block, address, props); + if (!account) return createAccount(block, address, props) - return account; -}; + return account +} diff --git a/indexers/staking-squid/src/storage/bundle.ts b/indexers/staking-squid/src/storage/bundle.ts index 59dc32ee4..983929fb9 100644 --- a/indexers/staking-squid/src/storage/bundle.ts +++ b/indexers/staking-squid/src/storage/bundle.ts @@ -1,25 +1,25 @@ -import { randomUUID } from "crypto"; -import { Bundle, BundleAuthor } from "../model"; -import { bundleUID } from "../utils"; +import { randomUUID } from 'crypto' +import { Bundle, BundleAuthor } from '../model' +import { bundleUID } from '../utils' export const createBundle = ( domainId: string, domainBlockId: string, domainBlockHash: string, domainBlockBundleIndex: number | string, - props?: Partial + props?: Partial, ): Bundle => new Bundle({ id: bundleUID(domainId, domainBlockHash, domainBlockBundleIndex), domainId, domainBlockId, - domainEpochId: "", + domainEpochId: '', domainBlockNumber: 0, - domainBlockHash: "", - domainBlockExtrinsicRoot: "", + domainBlockHash: '', + domainBlockExtrinsicRoot: '', epoch: 0, consensusBlockNumber: 0, - consensusBlockHash: "", + consensusBlockHash: '', totalTransfersIn: BigInt(0), transfersInCount: 0, totalTransfersOut: BigInt(0), @@ -33,7 +33,7 @@ export const createBundle = ( domainExecutionFee: BigInt(0), burnedBalance: BigInt(0), ...props, - }); + }) export const createBundleAuthor = ( domainId: string, @@ -42,7 +42,7 @@ export const createBundleAuthor = ( bundleId: string, domainBlockId: string, epoch: number, - props?: Partial + props?: Partial, ): BundleAuthor => new BundleAuthor({ id: randomUUID(), @@ -51,7 +51,7 @@ export const createBundleAuthor = ( operatorId, bundleId, domainBlockId, - domainEpochId: "", + domainEpochId: '', epoch, ...props, - }); + }) diff --git a/indexers/staking-squid/src/storage/deposit.ts b/indexers/staking-squid/src/storage/deposit.ts index 0899df180..922b1fd3a 100644 --- a/indexers/staking-squid/src/storage/deposit.ts +++ b/indexers/staking-squid/src/storage/deposit.ts @@ -1,6 +1,6 @@ -import { Deposit, DepositStatus } from "../model"; -import type { CtxBlock, CtxExtrinsic } from "../processor"; -import { depositUID, getBlockNumber, getTimestamp } from "../utils"; +import { Deposit, DepositStatus } from '../model' +import type { CtxBlock, CtxExtrinsic } from '../processor' +import { depositUID, getBlockNumber, getTimestamp } from '../utils' export const createDeposit = ( block: CtxBlock, @@ -8,14 +8,14 @@ export const createDeposit = ( operatorId: number | string, accountId: string, depositIndex: number | string, - props: Partial + props: Partial, ): Deposit => new Deposit({ id: depositUID(operatorId, accountId, depositIndex), accountId: accountId, - domainId: "", + domainId: '', operatorId: operatorId.toString(), - nominatorId: "", + nominatorId: '', amount: BigInt(0), storageFeeDeposit: BigInt(0), status: DepositStatus.PENDING, @@ -29,4 +29,4 @@ export const createDeposit = ( totalAmount: BigInt(0), totalWithdrawn: BigInt(0), ...props, - }); + }) diff --git a/indexers/staking-squid/src/storage/domain.ts b/indexers/staking-squid/src/storage/domain.ts index 816e7aa8a..6f80258bc 100644 --- a/indexers/staking-squid/src/storage/domain.ts +++ b/indexers/staking-squid/src/storage/domain.ts @@ -1,18 +1,18 @@ -import { Domain, DomainRuntime } from "../model"; -import type { CtxBlock } from "../processor"; -import { domainUID, getBlockNumber } from "../utils"; -import { Cache } from "../utils/cache"; +import { Domain, DomainRuntime } from '../model' +import type { CtxBlock } from '../processor' +import { domainUID, getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' export const createDomain = ( block: CtxBlock, domainId: number | string, - props: Partial + props: Partial, ): Domain => new Domain({ - id: typeof domainId === "string" ? domainId : domainUID(domainId), - sortId: typeof domainId === "string" ? parseInt(domainId) : domainId, - accountId: "0x", - name: "", + id: typeof domainId === 'string' ? domainId : domainUID(domainId), + sortId: typeof domainId === 'string' ? parseInt(domainId) : domainId, + accountId: '0x', + name: '', runtimeId: 0, runtime: DomainRuntime.EVM, runtimeInfo: JSON.stringify({}), @@ -53,19 +53,17 @@ export const createDomain = ( ...props, createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateDomain = ( cache: Cache, block: CtxBlock, domainId: number | string, - props: Partial = {} + props: Partial = {}, ): Domain => { - const domain = cache.domains.get( - typeof domainId === "string" ? domainId : domainUID(domainId) - ); + const domain = cache.domains.get(typeof domainId === 'string' ? domainId : domainUID(domainId)) - if (!domain) return createDomain(block, domainId, props); + if (!domain) return createDomain(block, domainId, props) - return domain; -}; + return domain +} diff --git a/indexers/staking-squid/src/storage/domainBlock.ts b/indexers/staking-squid/src/storage/domainBlock.ts index 27b509a4a..fccc16b09 100644 --- a/indexers/staking-squid/src/storage/domainBlock.ts +++ b/indexers/staking-squid/src/storage/domainBlock.ts @@ -1,26 +1,26 @@ -import { DomainBlock } from "../model"; -import { CtxBlock } from "../processor"; -import { blockUID, getBlockNumber, getTimestamp } from "../utils"; +import { DomainBlock } from '../model' +import { CtxBlock } from '../processor' +import { blockUID, getBlockNumber, getTimestamp } from '../utils' export const createDomainBlock = ( block: CtxBlock, domainId: string, blockNumber: number, blockHash: string, - props?: Partial + props?: Partial, ): DomainBlock => new DomainBlock({ id: blockUID(domainId, blockNumber), domainId, - domainEpochId: "", + domainEpochId: '', blockNumber, blockHash, - extrinsicRoot: "", + extrinsicRoot: '', epoch: 0, consensusBlockNumber: 0, - consensusBlockHash: "", + consensusBlockHash: '', createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), timestamp: getTimestamp(block), ...props, - }); + }) diff --git a/indexers/staking-squid/src/storage/domainEpoch.ts b/indexers/staking-squid/src/storage/domainEpoch.ts index a27abc206..038d298da 100644 --- a/indexers/staking-squid/src/storage/domainEpoch.ts +++ b/indexers/staking-squid/src/storage/domainEpoch.ts @@ -1,13 +1,13 @@ -import { DomainEpoch } from "../model"; -import { CtxBlock } from "../processor"; -import { epochUID, getBlockNumber, getTimestamp } from "../utils"; -import { Cache } from "../utils/cache"; +import { DomainEpoch } from '../model' +import { CtxBlock } from '../processor' +import { epochUID, getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' export const createDomainEpoch = ( block: CtxBlock, domainId: string, epoch: number, - props?: Partial + props?: Partial, ): DomainEpoch => new DomainEpoch({ id: epochUID(domainId, epoch), @@ -21,23 +21,23 @@ export const createDomainEpoch = ( epochDuration: BigInt(0), consensusBlockNumberStart: 0, consensusBlockNumberEnd: 0, - consensusBlockHashStart: "", - consensusBlockHashEnd: "", + consensusBlockHashStart: '', + consensusBlockHashEnd: '', createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), ...props, - }); + }) export const getOrCreateDomainEpoch = ( cache: Cache, block: CtxBlock, domainId: string, epoch: number, - props: Partial = {} + props: Partial = {}, ): DomainEpoch => { - const domainEpoch = cache.domainEpochs.get(epochUID(domainId, epoch)); + const domainEpoch = cache.domainEpochs.get(epochUID(domainId, epoch)) - if (!domainEpoch) return createDomainEpoch(block, domainId, epoch, props); + if (!domainEpoch) return createDomainEpoch(block, domainId, epoch, props) - return domainEpoch; -}; + return domainEpoch +} diff --git a/indexers/staking-squid/src/storage/index.ts b/indexers/staking-squid/src/storage/index.ts index 51519f244..4534d1ce8 100644 --- a/indexers/staking-squid/src/storage/index.ts +++ b/indexers/staking-squid/src/storage/index.ts @@ -1,10 +1,10 @@ -export * from "./account"; -export * from "./bundle"; -export * from "./deposit"; -export * from "./domain"; -export * from "./domainBlock"; -export * from "./domainEpoch"; -export * from "./nominator"; -export * from "./operator"; -export * from "./stats"; -export * from "./withdrawal"; +export * from './account' +export * from './bundle' +export * from './deposit' +export * from './domain' +export * from './domainBlock' +export * from './domainEpoch' +export * from './nominator' +export * from './operator' +export * from './stats' +export * from './withdrawal' diff --git a/indexers/staking-squid/src/storage/nominator.ts b/indexers/staking-squid/src/storage/nominator.ts index 53974d82a..900d6b6ed 100644 --- a/indexers/staking-squid/src/storage/nominator.ts +++ b/indexers/staking-squid/src/storage/nominator.ts @@ -1,23 +1,23 @@ -import { Nominator, NominatorPendingAction, NominatorStatus } from "../model"; -import type { CtxBlock, CtxExtrinsic } from "../processor"; -import { getBlockNumber, getCallSigner, nominatorUID } from "../utils"; -import { Cache } from "../utils/cache"; +import { Nominator, NominatorPendingAction, NominatorStatus } from '../model' +import type { CtxBlock, CtxExtrinsic } from '../processor' +import { getBlockNumber, getCallSigner, nominatorUID } from '../utils' +import { Cache } from '../utils/cache' export const createNominator = ( block: CtxBlock, extrinsic: CtxExtrinsic, operatorId: number, props: Partial, - address?: string + address?: string, ): Nominator => { if (!address) { - address = getCallSigner(extrinsic.call); + address = getCallSigner(extrinsic.call) } return new Nominator({ id: nominatorUID(operatorId, address), accountId: address, - domainId: "", + domainId: '', operatorId: operatorId.toString(), knownShares: BigInt(0), knownStorageFeeDeposit: BigInt(0), @@ -47,8 +47,8 @@ export const createNominator = ( createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), ...props, - }); -}; + }) +} export const getOrCreateNominator = ( cache: Cache, @@ -56,27 +56,25 @@ export const getOrCreateNominator = ( extrinsic: CtxExtrinsic, operatorId: number | string, props: Partial = {}, - address?: string + address?: string, ): Nominator => { if (!address) { - address = getCallSigner(extrinsic.call); + address = getCallSigner(extrinsic.call) } const nominator = cache.nominators.get( - typeof operatorId === "string" - ? operatorId - : nominatorUID(operatorId, address) - ); + typeof operatorId === 'string' ? operatorId : nominatorUID(operatorId, address), + ) if (!nominator) return createNominator( block, extrinsic, - typeof operatorId === "string" ? parseInt(operatorId) : operatorId, + typeof operatorId === 'string' ? parseInt(operatorId) : operatorId, { ...props, }, - address - ); + address, + ) - return nominator; -}; + return nominator +} diff --git a/indexers/staking-squid/src/storage/operator.ts b/indexers/staking-squid/src/storage/operator.ts index 0dfa3d0b8..def81a326 100644 --- a/indexers/staking-squid/src/storage/operator.ts +++ b/indexers/staking-squid/src/storage/operator.ts @@ -1,38 +1,33 @@ -import { randomUUID } from "crypto"; -import { - Operator, - OperatorPendingAction, - OperatorStatus, - RewardEvent, -} from "../model"; -import type { CtxBlock, CtxExtrinsic } from "../processor"; -import { getBlockNumber, getTimestamp, operatorUID } from "../utils"; -import { Cache } from "../utils/cache"; +import { randomUUID } from 'crypto' +import { Operator, OperatorPendingAction, OperatorStatus, RewardEvent } from '../model' +import type { CtxBlock, CtxExtrinsic } from '../processor' +import { getBlockNumber, getTimestamp, operatorUID } from '../utils' +import { Cache } from '../utils/cache' export const createOperator = ( block: CtxBlock, operatorId: number | string, - props: Partial + props: Partial, ): Operator => new Operator({ - id: typeof operatorId === "string" ? operatorId : operatorUID(operatorId), - sortId: typeof operatorId === "string" ? parseInt(operatorId) : operatorId, - accountId: "", - domainId: "", - signingKey: "0x", + id: typeof operatorId === 'string' ? operatorId : operatorUID(operatorId), + sortId: typeof operatorId === 'string' ? parseInt(operatorId) : operatorId, + accountId: '', + domainId: '', + signingKey: '0x', minimumNominatorStake: BigInt(0), nominationTax: 0, - name: "", - description: "", - icon: "", - banner: "", - website: "", + name: '', + description: '', + icon: '', + banner: '', + website: '', websiteVerified: false, - email: "", + email: '', emailVerified: false, - discord: "", - github: "", - twitter: "", + discord: '', + github: '', + twitter: '', currentTotalStake: BigInt(0), currentStorageFeeDeposit: BigInt(0), currentEpochRewards: BigInt(0), @@ -68,27 +63,27 @@ export const createOperator = ( ...props, createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateOperator = ( cache: Cache, block: CtxBlock, operatorId: number | string, - props: Partial = {} + props: Partial = {}, ): Operator => { const operator = cache.operators.get( - typeof operatorId === "string" ? operatorId : operatorUID(operatorId) - ); + typeof operatorId === 'string' ? operatorId : operatorUID(operatorId), + ) - if (!operator) return createOperator(block, operatorId, props); + if (!operator) return createOperator(block, operatorId, props) - return operator; -}; + return operator +} export const createRewardEvent = ( block: CtxBlock, extrinsic: CtxExtrinsic, - props: Partial + props: Partial, ): RewardEvent => new RewardEvent({ id: randomUUID(), @@ -96,4 +91,4 @@ export const createRewardEvent = ( blockNumber: getBlockNumber(block), timestamp: getTimestamp(block), extrinsicHash: extrinsic.hash.toString(), - }); + }) diff --git a/indexers/staking-squid/src/storage/stats.ts b/indexers/staking-squid/src/storage/stats.ts index 93fcac4e4..50e9b1d98 100644 --- a/indexers/staking-squid/src/storage/stats.ts +++ b/indexers/staking-squid/src/storage/stats.ts @@ -1,4 +1,4 @@ -import { randomUUID } from "crypto"; +import { randomUUID } from 'crypto' import { Account, Domain, @@ -10,57 +10,37 @@ import { StatsPerDomain, StatsPerNominator, StatsPerOperator, -} from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber, getTimestamp } from "../utils"; -import { - AllTimeHighSharePriceKey, - AllTimeHighStakedKey, - Cache, -} from "../utils/cache"; +} from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { AllTimeHighSharePriceKey, AllTimeHighStakedKey, Cache } from '../utils/cache' export const createStatsPerOperator = ( cache: Cache, block: CtxBlock, domain: Domain, - operator: Operator + operator: Operator, ): StatsPerOperator => { - const nominators = Array.from(cache.nominators.values()).filter( - (o) => o.domainId === domain.id - ); - const deposits = Array.from(cache.deposits.values()).filter( - (o) => o.domainId === domain.id - ); - const withdrawals = Array.from(cache.withdrawals.values()).filter( - (o) => o.domainId === domain.id - ); + const nominators = Array.from(cache.nominators.values()).filter((o) => o.domainId === domain.id) + const deposits = Array.from(cache.deposits.values()).filter((o) => o.domainId === domain.id) + const withdrawals = Array.from(cache.withdrawals.values()).filter((o) => o.domainId === domain.id) - const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:${domain.id}:${operator.id}`; - const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:${domain.id}:${operator.id}`; + const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:${domain.id}:${operator.id}` + const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:${domain.id}:${operator.id}` - let allTimeHighStaked = BigInt( - cache.internalKeyStore.get(allTimeHighStakedKey) || "0" - ); - let allTimeHighSharePrice = BigInt( - cache.internalKeyStore.get(allTimeHighSharePriceKey) || "0" - ); + let allTimeHighStaked = BigInt(cache.internalKeyStore.get(allTimeHighStakedKey) || '0') + let allTimeHighSharePrice = BigInt(cache.internalKeyStore.get(allTimeHighSharePriceKey) || '0') if (operator.currentTotalStake > allTimeHighStaked) { - allTimeHighStaked = operator.currentTotalStake; - cache.internalKeyStore.set( - allTimeHighStakedKey, - allTimeHighStaked.toString() - ); - cache.isModified = true; + allTimeHighStaked = operator.currentTotalStake + cache.internalKeyStore.set(allTimeHighStakedKey, allTimeHighStaked.toString()) + cache.isModified = true } if (operator.currentSharePrice > allTimeHighSharePrice) { - allTimeHighSharePrice = operator.currentSharePrice; - cache.internalKeyStore.set( - allTimeHighSharePriceKey, - allTimeHighSharePrice.toString() - ); - cache.isModified = true; + allTimeHighSharePrice = operator.currentSharePrice + cache.internalKeyStore.set(allTimeHighSharePriceKey, allTimeHighSharePrice.toString()) + cache.isModified = true } return new StatsPerOperator({ @@ -81,59 +61,41 @@ export const createStatsPerOperator = ( depositsCount: deposits.length, withdrawalsCount: withdrawals.length, timestamp: getTimestamp(block), - }); -}; + }) +} export const createStatsPerDomain = ( cache: Cache, block: CtxBlock, - domain: Domain + domain: Domain, ): StatsPerDomain => { - const operators = Array.from(cache.operators.values()).filter( - (o) => o.domainId === domain.id - ); - const nominators = Array.from(cache.nominators.values()).filter( - (o) => o.domainId === domain.id - ); - const deposits = Array.from(cache.deposits.values()).filter( - (o) => o.domainId === domain.id - ); - const withdrawals = Array.from(cache.withdrawals.values()).filter( - (o) => o.domainId === domain.id - ); + const operators = Array.from(cache.operators.values()).filter((o) => o.domainId === domain.id) + const nominators = Array.from(cache.nominators.values()).filter((o) => o.domainId === domain.id) + const deposits = Array.from(cache.deposits.values()).filter((o) => o.domainId === domain.id) + const withdrawals = Array.from(cache.withdrawals.values()).filter((o) => o.domainId === domain.id) const activeOperatorsCount = operators.filter( - (operator) => operator.status === OperatorStatus.REGISTERED - ).length; + (operator) => operator.status === OperatorStatus.REGISTERED, + ).length const slashedOperatorsCount = operators.filter( - (operator) => operator.status === OperatorStatus.SLASHED - ).length; + (operator) => operator.status === OperatorStatus.SLASHED, + ).length - const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:${domain.id}:general`; - const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:${domain.id}:general`; + const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:${domain.id}:general` + const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:${domain.id}:general` - let allTimeHighStaked = BigInt( - cache.internalKeyStore.get(allTimeHighStakedKey) || "0" - ); - let allTimeHighSharePrice = BigInt( - cache.internalKeyStore.get(allTimeHighSharePriceKey) || "0" - ); + let allTimeHighStaked = BigInt(cache.internalKeyStore.get(allTimeHighStakedKey) || '0') + let allTimeHighSharePrice = BigInt(cache.internalKeyStore.get(allTimeHighSharePriceKey) || '0') if (domain.currentTotalStake > allTimeHighStaked) { - allTimeHighStaked = domain.currentTotalStake; - cache.internalKeyStore.set( - allTimeHighStakedKey, - allTimeHighStaked.toString() - ); - cache.isModified = true; + allTimeHighStaked = domain.currentTotalStake + cache.internalKeyStore.set(allTimeHighStakedKey, allTimeHighStaked.toString()) + cache.isModified = true } if (domain.currentSharePrice > allTimeHighSharePrice) { - allTimeHighSharePrice = domain.currentSharePrice; - cache.internalKeyStore.set( - allTimeHighSharePriceKey, - allTimeHighSharePrice.toString() - ); - cache.isModified = true; + allTimeHighSharePrice = domain.currentSharePrice + cache.internalKeyStore.set(allTimeHighSharePriceKey, allTimeHighSharePrice.toString()) + cache.isModified = true } return new StatsPerDomain({ @@ -156,76 +118,65 @@ export const createStatsPerDomain = ( withdrawalsCount: withdrawals.length, blockNumber: getBlockNumber(block), timestamp: getTimestamp(block), - }); -}; + }) +} export const createStats = (cache: Cache, block: CtxBlock): Stats => { - const operators = Array.from(cache.operators.values()); + const operators = Array.from(cache.operators.values()) const activeOperatorsCount = operators.filter( - (operator) => operator.status === OperatorStatus.REGISTERED - ).length; + (operator) => operator.status === OperatorStatus.REGISTERED, + ).length const slashedOperatorsCount = operators.filter( - (operator) => operator.status === OperatorStatus.SLASHED - ).length; + (operator) => operator.status === OperatorStatus.SLASHED, + ).length const totalStaked = operators.reduce( (total, operator) => total + operator.currentTotalStake, - BigInt(0) - ); + BigInt(0), + ) const totalDeposits = operators.reduce( (total, operator) => total + operator.totalDeposits, - BigInt(0) - ); + BigInt(0), + ) const totalTaxCollected = operators.reduce( (total, operator) => total + operator.totalTaxCollected, - BigInt(0) - ); + BigInt(0), + ) const totalRewardsCollected = operators.reduce( (total, operator) => total + operator.totalRewardsCollected, - BigInt(0) - ); + BigInt(0), + ) const totalWithdrawals = operators.reduce( (total, operator) => total + operator.totalWithdrawals, - BigInt(0) - ); + BigInt(0), + ) const totalShares = operators.reduce( (total, operator) => total + operator.currentTotalShares, - BigInt(0) - ); + BigInt(0), + ) const currentSharePrice = operators.reduce( (total, operator) => total + operator.currentSharePrice, - BigInt(0) - ); + BigInt(0), + ) - const allTimeHighStakedKey: AllTimeHighStakedKey = - "allTimeHighStaked:all-domains:general"; + const allTimeHighStakedKey: AllTimeHighStakedKey = 'allTimeHighStaked:all-domains:general' const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = - "allTimeHighSharePrice:all-domains:general"; + 'allTimeHighSharePrice:all-domains:general' - let allTimeHighStaked = BigInt( - cache.internalKeyStore.get(allTimeHighStakedKey) || "0" - ); - let allTimeHighSharePrice = BigInt( - cache.internalKeyStore.get(allTimeHighSharePriceKey) || "0" - ); + let allTimeHighStaked = BigInt(cache.internalKeyStore.get(allTimeHighStakedKey) || '0') + let allTimeHighSharePrice = BigInt(cache.internalKeyStore.get(allTimeHighSharePriceKey) || '0') if (totalStaked > allTimeHighStaked) { - allTimeHighStaked = totalStaked; - cache.internalKeyStore.set( - allTimeHighStakedKey, - allTimeHighStaked.toString() - ); - cache.isModified = true; + allTimeHighStaked = totalStaked + cache.internalKeyStore.set(allTimeHighStakedKey, allTimeHighStaked.toString()) + cache.isModified = true } if (currentSharePrice > allTimeHighSharePrice) { - allTimeHighSharePrice = currentSharePrice; - cache.internalKeyStore.set( - allTimeHighSharePriceKey, - allTimeHighSharePrice.toString() - ); - cache.isModified = true; + allTimeHighSharePrice = currentSharePrice + cache.internalKeyStore.set(allTimeHighSharePriceKey, allTimeHighSharePrice.toString()) + cache.isModified = true } return new Stats({ @@ -248,49 +199,37 @@ export const createStats = (cache: Cache, block: CtxBlock): Stats => { withdrawalsCount: cache.withdrawals.size, blockNumber: getBlockNumber(block), timestamp: getTimestamp(block), - }); -}; + }) +} export const createStatsPerNominator = ( cache: Cache, block: CtxBlock, domain: Domain, operator: Operator, - nominator: Nominator + nominator: Nominator, ): StatsPerNominator => { - const deposits = Array.from(cache.deposits.values()).filter( - (o) => o.nominatorId === nominator.id - ); + const deposits = Array.from(cache.deposits.values()).filter((o) => o.nominatorId === nominator.id) const withdrawals = Array.from(cache.withdrawals.values()).filter( - (o) => o.nominatorId === nominator.id - ); + (o) => o.nominatorId === nominator.id, + ) - const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:${domain.id}:${operator.id}:${nominator.id}`; - const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:${domain.id}:${operator.id}:${nominator.id}`; + const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:${domain.id}:${operator.id}:${nominator.id}` + const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:${domain.id}:${operator.id}:${nominator.id}` - let allTimeHighStaked = BigInt( - cache.internalKeyStore.get(allTimeHighStakedKey) || "0" - ); - let allTimeHighSharePrice = BigInt( - cache.internalKeyStore.get(allTimeHighSharePriceKey) || "0" - ); + let allTimeHighStaked = BigInt(cache.internalKeyStore.get(allTimeHighStakedKey) || '0') + let allTimeHighSharePrice = BigInt(cache.internalKeyStore.get(allTimeHighSharePriceKey) || '0') if (nominator.currentTotalStake > allTimeHighStaked) { - allTimeHighStaked = nominator.currentTotalStake; - cache.internalKeyStore.set( - allTimeHighStakedKey, - allTimeHighStaked.toString() - ); - cache.isModified = true; + allTimeHighStaked = nominator.currentTotalStake + cache.internalKeyStore.set(allTimeHighStakedKey, allTimeHighStaked.toString()) + cache.isModified = true } if (nominator.currentSharePrice > allTimeHighSharePrice) { - allTimeHighSharePrice = nominator.currentSharePrice; - cache.internalKeyStore.set( - allTimeHighSharePriceKey, - allTimeHighSharePrice.toString() - ); - cache.isModified = true; + allTimeHighSharePrice = nominator.currentSharePrice + cache.internalKeyStore.set(allTimeHighSharePriceKey, allTimeHighSharePrice.toString()) + cache.isModified = true } return new StatsPerNominator({ @@ -309,53 +248,37 @@ export const createStatsPerNominator = ( depositsCount: deposits.length, withdrawalsCount: withdrawals.length, timestamp: getTimestamp(block), - }); -}; + }) +} export const createStatsPerAccount = ( cache: Cache, block: CtxBlock, - account: Account + account: Account, ): StatsPerAccount => { - const operators = Array.from(cache.operators.values()).filter( - (o) => o.accountId === account.id - ); - const nominators = Array.from(cache.nominators.values()).filter( - (o) => o.accountId === account.id - ); - const deposits = Array.from(cache.deposits.values()).filter( - (o) => o.accountId === account.id - ); + const operators = Array.from(cache.operators.values()).filter((o) => o.accountId === account.id) + const nominators = Array.from(cache.nominators.values()).filter((o) => o.accountId === account.id) + const deposits = Array.from(cache.deposits.values()).filter((o) => o.accountId === account.id) const withdrawals = Array.from(cache.withdrawals.values()).filter( - (o) => o.accountId === account.id - ); + (o) => o.accountId === account.id, + ) - const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:account:${account.id}`; - const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:account:${account.id}`; + const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:account:${account.id}` + const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:account:${account.id}` - let allTimeHighStaked = BigInt( - cache.internalKeyStore.get(allTimeHighStakedKey) || "0" - ); - let allTimeHighSharePrice = BigInt( - cache.internalKeyStore.get(allTimeHighSharePriceKey) || "0" - ); + let allTimeHighStaked = BigInt(cache.internalKeyStore.get(allTimeHighStakedKey) || '0') + let allTimeHighSharePrice = BigInt(cache.internalKeyStore.get(allTimeHighSharePriceKey) || '0') if (account.currentTotalStake > allTimeHighStaked) { - allTimeHighStaked = account.currentTotalStake; - cache.internalKeyStore.set( - allTimeHighStakedKey, - allTimeHighStaked.toString() - ); - cache.isModified = true; + allTimeHighStaked = account.currentTotalStake + cache.internalKeyStore.set(allTimeHighStakedKey, allTimeHighStaked.toString()) + cache.isModified = true } if (account.currentSharePrice > allTimeHighSharePrice) { - allTimeHighSharePrice = account.currentSharePrice; - cache.internalKeyStore.set( - allTimeHighSharePriceKey, - allTimeHighSharePrice.toString() - ); - cache.isModified = true; + allTimeHighSharePrice = account.currentSharePrice + cache.internalKeyStore.set(allTimeHighSharePriceKey, allTimeHighSharePrice.toString()) + cache.isModified = true } return new StatsPerAccount({ @@ -374,5 +297,5 @@ export const createStatsPerAccount = ( depositsCount: deposits.length, withdrawalsCount: withdrawals.length, timestamp: getTimestamp(block), - }); -}; + }) +} diff --git a/indexers/staking-squid/src/storage/withdrawal.ts b/indexers/staking-squid/src/storage/withdrawal.ts index 33fd12603..16276f1de 100644 --- a/indexers/staking-squid/src/storage/withdrawal.ts +++ b/indexers/staking-squid/src/storage/withdrawal.ts @@ -1,6 +1,6 @@ -import { Withdrawal, WithdrawalStatus } from "../model"; -import type { CtxBlock, CtxExtrinsic } from "../processor"; -import { getBlockNumber, getTimestamp, withdrawalUID } from "../utils"; +import { Withdrawal, WithdrawalStatus } from '../model' +import type { CtxBlock, CtxExtrinsic } from '../processor' +import { getBlockNumber, getTimestamp, withdrawalUID } from '../utils' export const createWithdrawal = ( block: CtxBlock, @@ -8,14 +8,14 @@ export const createWithdrawal = ( operatorId: number | string, accountId: string, withdrawalIndex: number | string, - props: Partial + props: Partial, ): Withdrawal => new Withdrawal({ id: withdrawalUID(operatorId, accountId, withdrawalIndex), accountId: accountId, - domainId: "", + domainId: '', operatorId: operatorId.toString(), - nominatorId: "", + nominatorId: '', shares: BigInt(0), estimatedAmount: BigInt(0), unlockedAmount: BigInt(0), @@ -24,7 +24,7 @@ export const createWithdrawal = ( status: WithdrawalStatus.PENDING_LOCK, timestamp: getTimestamp(block), withdrawExtrinsicHash: extrinsic.hash.toString(), - unlockExtrinsicHash: "", + unlockExtrinsicHash: '', epochWithdrawalRequestedAt: 0, domainBlockNumberWithdrawalRequestedAt: 0, createdAt: getBlockNumber(block), @@ -32,4 +32,4 @@ export const createWithdrawal = ( unlockedAt: 0, updatedAt: getBlockNumber(block), ...props, - }); + }) diff --git a/indexers/staking-squid/src/types/calls.ts b/indexers/staking-squid/src/types/calls.ts deleted file mode 100644 index bcb406fc7..000000000 --- a/indexers/staking-squid/src/types/calls.ts +++ /dev/null @@ -1 +0,0 @@ -export * as domains from './domains/calls' diff --git a/indexers/staking-squid/src/types/constants.ts b/indexers/staking-squid/src/types/constants.ts deleted file mode 100644 index 20496425d..000000000 --- a/indexers/staking-squid/src/types/constants.ts +++ /dev/null @@ -1 +0,0 @@ -export * as domains from './domains/constants' diff --git a/indexers/staking-squid/src/types/domains/calls.ts b/indexers/staking-squid/src/types/domains/calls.ts deleted file mode 100644 index 4195fdca8..000000000 --- a/indexers/staking-squid/src/types/domains/calls.ts +++ /dev/null @@ -1,372 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' -import * as v6 from '../v6' - -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), - v5: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v5.Bundle, - }) - ), - v6: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v6.Bundle, - }) - ), -} - -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), - v5: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v5.FraudProof, - }) - ), - v6: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v6.FraudProof, - }) - ), -} - -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), - v5: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v5.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), - v5: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v5.DomainId, - amount: sts.bigint(), - config: v5.OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }) - ), -} - -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), -} - -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), -} - -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), -} - -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), -} - -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), -} - -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const unlockNominator = { - name: 'Domains.unlock_nominator', - /** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ - v5: new CallType( - 'Domains.unlock_nominator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const setPermissionedActionAllowedBy = { - name: 'Domains.set_permissioned_action_allowed_by', - /** - * Update permissioned action allowed by storage by Sudo. - */ - v5: new CallType( - 'Domains.set_permissioned_action_allowed_by', - sts.struct({ - permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, - }) - ), -} - -export const sendDomainSudoCall = { - name: 'Domains.send_domain_sudo_call', - /** - * Submit a domain sudo call. - */ - v6: new CallType( - 'Domains.send_domain_sudo_call', - sts.struct({ - domainId: v6.DomainId, - call: sts.bytes(), - }) - ), -} - -export const freezeDomain = { - name: 'Domains.freeze_domain', - /** - * Freezes a given domain. - * A frozen domain does not accept new bundles but accepts fraud proofs. - */ - v6: new CallType( - 'Domains.freeze_domain', - sts.struct({ - domainId: v6.DomainId, - }) - ), -} - -export const unfreezeDomain = { - name: 'Domains.unfreeze_domain', - /** - * Unfreezes a frozen domain. - */ - v6: new CallType( - 'Domains.unfreeze_domain', - sts.struct({ - domainId: v6.DomainId, - }) - ), -} - -export const pruneDomainExecutionReceipt = { - name: 'Domains.prune_domain_execution_receipt', - /** - * Prunes a given execution receipt for given frozen domain. - * This call assumes the execution receipt to be bad and implicitly trusts Sudo - * to do necessary validation of the ER before dispatching this call. - */ - v6: new CallType( - 'Domains.prune_domain_execution_receipt', - sts.struct({ - domainId: v6.DomainId, - badReceiptHash: v6.H256, - }) - ), -} - -export const transferTreasuryFunds = { - name: 'Domains.transfer_treasury_funds', - /** - * Transfer funds from treasury to given account - */ - v6: new CallType( - 'Domains.transfer_treasury_funds', - sts.struct({ - accountId: v6.AccountId32, - balance: sts.bigint(), - }) - ), -} - -export const submitReceipt = { - name: 'Domains.submit_receipt', - v6: new CallType( - 'Domains.submit_receipt', - sts.struct({ - singletonReceipt: v6.SealedSingletonReceipt, - }) - ), -} diff --git a/indexers/staking-squid/src/types/domains/constants.ts b/indexers/staking-squid/src/types/domains/constants.ts deleted file mode 100644 index a26b47666..000000000 --- a/indexers/staking-squid/src/types/domains/constants.ts +++ /dev/null @@ -1,213 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), -} diff --git a/indexers/staking-squid/src/types/domains/events.ts b/indexers/staking-squid/src/types/domains/events.ts deleted file mode 100644 index b75e07ce6..000000000 --- a/indexers/staking-squid/src/types/domains/events.ts +++ /dev/null @@ -1,325 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' -import * as v6 from '../v6' - -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), - v5: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v5.RuntimeType, - }) - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), - v6: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), - v5: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v5.SlashedReason, - }) - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const nominatedStakedUnlocked = { - name: 'Domains.NominatedStakedUnlocked', - v6: new EventType( - 'Domains.NominatedStakedUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - unlockedAmount: sts.bigint(), - }) - ), -} - -export const storageFeeUnlocked = { - name: 'Domains.StorageFeeUnlocked', - v6: new EventType( - 'Domains.StorageFeeUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - storageFee: sts.bigint(), - }) - ), -} - -export const nominatorUnlocked = { - name: 'Domains.NominatorUnlocked', - v6: new EventType( - 'Domains.NominatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - }) - ), -} - -export const domainFrozen = { - name: 'Domains.DomainFrozen', - v6: new EventType( - 'Domains.DomainFrozen', - sts.struct({ - domainId: v6.DomainId, - }) - ), -} - -export const domainUnfrozen = { - name: 'Domains.DomainUnfrozen', - v6: new EventType( - 'Domains.DomainUnfrozen', - sts.struct({ - domainId: v6.DomainId, - }) - ), -} - -export const prunedExecutionReceipt = { - name: 'Domains.PrunedExecutionReceipt', - v6: new EventType( - 'Domains.PrunedExecutionReceipt', - sts.struct({ - domainId: v6.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} diff --git a/indexers/staking-squid/src/types/domains/storage.ts b/indexers/staking-squid/src/types/domains/storage.ts deleted file mode 100644 index 115361b07..000000000 --- a/indexers/staking-squid/src/types/domains/storage.ts +++ /dev/null @@ -1,1362 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' -import * as v5 from '../v5' -import * as v6 from '../v6' - -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, -} - -/** - * Bundles submitted successfully in current block. - */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, -} - -/** - * Fraud proofs submitted successfully in current block. - */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, -} - -/** - * Stores the next runtime id. - */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, -} - -/** - * Stores the next evm chain id. - */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, - v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, - v6: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v6.RuntimeObject) as RuntimeRegistryV6, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export interface RuntimeRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> -} - -export interface RuntimeRegistryV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v6.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v6.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v6.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v6.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v6.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v6.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, -} - -/** - * Indexes operator signing key against OperatorId. - */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, -} - -/** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, -} - -/** - * Share price for the operator pool at the end of Domain epoch. - */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, -} - -/** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, -} - -/** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, -} - -/** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, -} - -/** - * Stores the next domain id. - */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, - /** - * The domain registry - */ - v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, -} - -/** - * The domain registry - */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> - getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, -} - -/** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v6: new StorageType('Domains.BlockTreeNodes', 'Optional', [v6.H256], v6.BlockTreeNode) as BlockTreeNodesV6, -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> - getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v6.H256): Promise<(v6.BlockTreeNode | undefined)> - getMany(block: Block, keys: v6.H256[]): Promise<(v6.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v6.H256): Promise<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v6.H256): AsyncIterable<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, -} - -/** - * The head receipt number of each domain - */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, -} - -/** - * The latest confirmed block number of each domain. - */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, -} - -/** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, -} - -/** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, -} - -/** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, -} - -/** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, -} - -/** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, -} - -/** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, -} - -/** - * Storage to hold all the domain's latest confirmed block. - */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, -} - -/** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} - -export const operatorHighestSlot = { - /** - * The highest slot of the bundle submitted by an operator - */ - v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, -} - -/** - * The highest slot of the bundle submitted by an operator - */ -export interface OperatorHighestSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: bigint): Promise<(bigint | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> -} - -export const operatorBundleSlot = { - /** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ - v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, -} - -/** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ -export interface OperatorBundleSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint[] - get(block: Block, key: bigint): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> -} - -export const permissionedActionAllowedBy = { - /** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ - v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, -} - -/** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ -export interface PermissionedActionAllowedByV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> -} - -export const accumulatedTreasuryFunds = { - /** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ - v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, -} - -/** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ -export interface AccumulatedTreasuryFundsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const domainRuntimeUpgradeRecords = { - /** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ - v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, -} - -/** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ -export interface DomainRuntimeUpgradeRecordsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] - get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> - getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> -} - -export const domainRuntimeUpgrades = { - /** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ - v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, -} - -/** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ -export interface DomainRuntimeUpgradesV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number[] - get(block: Block): Promise<(number[] | undefined)> -} - -export const newAddedHeadReceipt = { - /** - * The hash of the new head receipt added in the current consensus block - * - * Temporary storage only exist during block execution - */ - v6: new StorageType('Domains.NewAddedHeadReceipt', 'Optional', [v6.DomainId], v6.H256) as NewAddedHeadReceiptV6, -} - -/** - * The hash of the new head receipt added in the current consensus block - * - * Temporary storage only exist during block execution - */ -export interface NewAddedHeadReceiptV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v6.DomainId): Promise<(v6.H256 | undefined)> - getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v6.DomainId, v: (v6.H256 | undefined)][]> - getPairs(block: Block, key: v6.DomainId): Promise<[k: v6.DomainId, v: (v6.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.DomainId, v: (v6.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable<[k: v6.DomainId, v: (v6.H256 | undefined)][]> -} - -export const latestConfirmedDomainExecutionReceipt = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v6: new StorageType('Domains.LatestConfirmedDomainExecutionReceipt', 'Optional', [v6.DomainId], v6.ExecutionReceipt) as LatestConfirmedDomainExecutionReceiptV6, -} - -/** - * Storage to hold all the domain's latest confirmed block. - */ -export interface LatestConfirmedDomainExecutionReceiptV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v6.DomainId): Promise<(v6.ExecutionReceipt | undefined)> - getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.ExecutionReceipt | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> - getPairs(block: Block, key: v6.DomainId): Promise<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> -} - -export const domainSudoCalls = { - /** - * Temporary storage to hold the sudo calls meant for the Domains. - * Storage is cleared when there are any successful bundles in the next block. - * Only one sudo call is allowed per domain per consensus block. - */ - v6: new StorageType('Domains.DomainSudoCalls', 'Default', [v6.DomainId], v6.DomainSudoCall) as DomainSudoCallsV6, -} - -/** - * Temporary storage to hold the sudo calls meant for the Domains. - * Storage is cleared when there are any successful bundles in the next block. - * Only one sudo call is allowed per domain per consensus block. - */ -export interface DomainSudoCallsV6 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v6.DomainSudoCall - get(block: Block, key: v6.DomainId): Promise<(v6.DomainSudoCall | undefined)> - getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.DomainSudoCall | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> - getPairs(block: Block, key: v6.DomainId): Promise<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> -} - -export const frozenDomains = { - /** - * Storage that hold a list of all frozen domains. - * A frozen domain does not accept the bundles but does accept a fraud proof. - */ - v6: new StorageType('Domains.FrozenDomains', 'Default', [], sts.array(() => v6.DomainId)) as FrozenDomainsV6, -} - -/** - * Storage that hold a list of all frozen domains. - * A frozen domain does not accept the bundles but does accept a fraud proof. - */ -export interface FrozenDomainsV6 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v6.DomainId[] - get(block: Block): Promise<(v6.DomainId[] | undefined)> -} diff --git a/indexers/staking-squid/src/types/events.ts b/indexers/staking-squid/src/types/events.ts deleted file mode 100644 index 588ebdc52..000000000 --- a/indexers/staking-squid/src/types/events.ts +++ /dev/null @@ -1 +0,0 @@ -export * as domains from './domains/events' diff --git a/indexers/staking-squid/src/types/index.ts b/indexers/staking-squid/src/types/index.ts deleted file mode 100644 index 720ed4165..000000000 --- a/indexers/staking-squid/src/types/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * as v0 from './v0' -export * as v5 from './v5' -export * as v6 from './v6' -export * as v1 from './v1' -export * as v3 from './v3' -export * as events from './events' -export * as calls from './calls' -export * as constants from './constants' -export * as storage from './storage' diff --git a/indexers/staking-squid/src/types/storage.ts b/indexers/staking-squid/src/types/storage.ts deleted file mode 100644 index fa4c362de..000000000 --- a/indexers/staking-squid/src/types/storage.ts +++ /dev/null @@ -1 +0,0 @@ -export * as domains from './domains/storage' diff --git a/indexers/staking-squid/src/types/support.ts b/indexers/staking-squid/src/types/support.ts deleted file mode 100644 index 456dfc2fb..000000000 --- a/indexers/staking-squid/src/types/support.ts +++ /dev/null @@ -1,142 +0,0 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' -import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' -import assert from 'assert' - - -export {sts, Bytes, BitSequence, Option, Result} - - -export interface RuntimeCtx { - _runtime: Runtime -} - - -export interface Block extends RuntimeCtx { - hash: Bytes - height: number -} - - -interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } -} - - -export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } -} - - -export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } -} - - -export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } -} diff --git a/indexers/staking-squid/src/types/v0.ts b/indexers/staking-squid/src/types/v0.ts deleted file mode 100644 index f573774c5..000000000 --- a/indexers/staking-squid/src/types/v0.ts +++ /dev/null @@ -1,934 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint -} - -export type U256 = bigint - -export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } -}) - -export const U256 = sts.bigint() - -export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint -} - -export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } -}) - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint -} - -export interface KnownDeposit { - shares: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } -}) - -export type DomainEpoch = [DomainId, number] - -export type SharePrice = number - -export const SharePrice = sts.number() - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] -} - -export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } -}) - -export type AccountId32 = Bytes - -export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 -} - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } -}) - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export type DomainId = number - -export type H256 = Bytes - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const Randomness = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type Randomness = Bytes - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export const Slot = sts.bigint() - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type Slot = bigint - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -export const AccountId32 = sts.bytes() - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export const H256 = sts.bytes() - -export const DomainId = sts.number() diff --git a/indexers/staking-squid/src/types/v1.ts b/indexers/staking-squid/src/types/v1.ts deleted file mode 100644 index 0b5706a56..000000000 --- a/indexers/staking-squid/src/types/v1.ts +++ /dev/null @@ -1,890 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const PalletId = sts.bytes() - -export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 -} - -export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } -}) - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainId = sts.number() - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) -} - -export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint -} - -export type DomainEpoch = [DomainId, number] - -export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } -}) - -export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export type AccountId32 = Bytes - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint -} - -export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const PotOutput = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type PotOutput = Bytes - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export const Slot = sts.bigint() - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type Slot = bigint - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const AccountId32 = sts.bytes() diff --git a/indexers/staking-squid/src/types/v3.ts b/indexers/staking-squid/src/types/v3.ts deleted file mode 100644 index 81adc1468..000000000 --- a/indexers/staking-squid/src/types/v3.ts +++ /dev/null @@ -1,85 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export type DomainId = number - -export const DomainId = sts.number() - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type DomainEpoch = [DomainId, number] - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const Percent = sts.number() diff --git a/indexers/staking-squid/src/types/v5.ts b/indexers/staking-squid/src/types/v5.ts deleted file mode 100644 index 4735ccf0d..000000000 --- a/indexers/staking-squid/src/types/v5.ts +++ /dev/null @@ -1,978 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface DomainRuntimeUpgradeEntry { - atHash: H256 - referenceCount: number -} - -export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { - return { - atHash: H256, - referenceCount: sts.number(), - } -}) - -export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone - -export interface PermissionedActionAllowedBy_Accounts { - __kind: 'Accounts' - value: AccountId32[] -} - -export interface PermissionedActionAllowedBy_Anyone { - __kind: 'Anyone' -} - -export type AccountId32 = Bytes - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_AutoId { - __kind: 'AutoId' -} - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm - -export interface RuntimeType_AutoId { - __kind: 'AutoId' -} - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { - return { - Accounts: sts.array(() => AccountId32), - Anyone: sts.unit(), - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export const Percent = sts.number() - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export type Percent = number - -export const DomainId = sts.number() - -export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } -}) - -export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } -}) - -export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } -}) - -export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface SuccessfulBundlesProof { - trieNodes: Bytes[] -} - -export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof -} - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export type PotOutput = Bytes - -export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } -}) - -export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, - } -}) - -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] -} - -export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] -} - -export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] -} - -export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), - } -}) - -export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] -} - -export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockDigestProof { - trieNodes: Bytes[] -} - -export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) -} - -export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface TimestampStorageProof { - trieNodes: Bytes[] -} - -export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof -} - -export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockRandomnessProof { - trieNodes: Bytes[] -} - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof -} - -export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } -}) - -export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - } -}) - -export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic - -export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof -} - -export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof -} - -export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof -} - -export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - storageProof: StorageProof -} - -export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle - -export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof -} - -export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } -}) - -export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof -} - -export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Proof -} - -export interface Proof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export type EncodableOpaqueLeaf = Bytes - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Proof, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export const EncodableOpaqueLeaf = sts.bytes() - -export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) - maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) - proof: FraudProofVariant -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export const PotOutput = sts.bytes() - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - InvalidBundle: sts.number(), - } -}) - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } -}) diff --git a/indexers/staking-squid/src/types/v6.ts b/indexers/staking-squid/src/types/v6.ts deleted file mode 100644 index 91f2e1d24..000000000 --- a/indexers/staking-squid/src/types/v6.ts +++ /dev/null @@ -1,890 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface DomainSudoCall { - maybeCall?: (Bytes | undefined) -} - -export const DomainSudoCall: sts.Type = sts.struct(() => { - return { - maybeCall: sts.option(() => sts.bytes()), - } -}) - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export type DomainId = number - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - instanceCount: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm - -export interface RuntimeType_AutoId { - __kind: 'AutoId' -} - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - instanceCount: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } -}) - -export const SealedSingletonReceipt: sts.Type = sts.struct(() => { - return { - singletonReceipt: SingletonReceipt, - signature: sts.bytes(), - } -}) - -export const SingletonReceipt: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const PotOutput = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type PotOutput = Bytes - -export interface SingletonReceipt { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt -} - -export interface SealedSingletonReceipt { - singletonReceipt: SingletonReceipt - signature: Bytes -} - -export const H256 = sts.bytes() - -export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } -}) - -export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } -}) - -export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } -}) - -export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface SuccessfulBundlesProof { - trieNodes: Bytes[] -} - -export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof -} - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } -}) - -export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, - maybeDomainSudoCallProof: sts.option(() => DomainSudoCallStorageProof), - } -}) - -export const DomainSudoCallStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainSudoCallStorageProof { - trieNodes: Bytes[] -} - -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] -} - -export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] -} - -export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] -} - -export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), - } -}) - -export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] -} - -export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockDigestProof { - trieNodes: Bytes[] -} - -export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) -} - -export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface TimestampStorageProof { - trieNodes: Bytes[] -} - -export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof - maybeDomainSudoCallProof?: (DomainSudoCallStorageProof | undefined) -} - -export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockRandomnessProof { - trieNodes: Bytes[] -} - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof -} - -export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } -}) - -export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - InvalidXDMProofData: sts.enumStruct({ - extrinsicProof: StorageProof, - mmrRootProof: sts.option(() => MmrRootProof), - }), - } -}) - -export const MmrRootProof: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - mmrRootStorageProof: MmrRootStorageProof, - } -}) - -export const MmrRootStorageProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface MmrRootStorageProof { - storageProof: StorageProof -} - -export interface MmrRootProof { - mmrProof: ConsensusChainMmrLeafProof - mmrRootStorageProof: MmrRootStorageProof -} - -export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: LeafProof -} - -export interface LeafProof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export type EncodableOpaqueLeaf = Bytes - -export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic | InvalidBundlesProofData_InvalidXDMProofData - -export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof -} - -export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof -} - -export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof -} - -export interface InvalidBundlesProofData_InvalidXDMProofData { - __kind: 'InvalidXDMProofData' - extrinsicProof: StorageProof - mmrRootProof?: (MmrRootProof | undefined) -} - -export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - storageProof: StorageProof -} - -export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle - -export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof -} - -export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } -}) - -export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof -} - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: LeafProof, - } -}) - -export const LeafProof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export const EncodableOpaqueLeaf = sts.bytes() - -export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) - maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) - proof: FraudProofVariant -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const DomainId = sts.number() - -export const AccountId32 = sts.bytes() diff --git a/indexers/staking-squid/src/utils/cache.ts b/indexers/staking-squid/src/utils/cache.ts index 8b6fa7268..ded9ce789 100644 --- a/indexers/staking-squid/src/utils/cache.ts +++ b/indexers/staking-squid/src/utils/cache.ts @@ -1,5 +1,5 @@ -import { Store } from "@subsquid/typeorm-store"; -import { Entity } from "@subsquid/typeorm-store/src/store"; +import { Store } from '@subsquid/typeorm-store' +import { Entity } from '@subsquid/typeorm-store/src/store' import { Account, Bundle, @@ -17,47 +17,42 @@ import { StatsPerNominator, StatsPerOperator, Withdrawal, -} from "../model"; -import type { Ctx } from "../processor"; +} from '../model' +import type { Ctx } from '../processor' export type PermanentCache = { - domains: Map; - accounts: Map; - operators: Map; - nominators: Map; - deposits: Map; - withdrawals: Map; - domainEpochs: Map; -}; + domains: Map + accounts: Map + operators: Map + nominators: Map + deposits: Map + withdrawals: Map + domainEpochs: Map +} export type TemporaryCache = { - bundles: Map; - bundleAuthors: Map; - domainBlocks: Map; - operatorRewardedEvents: Map; - stats: Map; - statsPerDomain: Map; - statsPerOperator: Map; - statsPerAccount: Map; - statsPerNominator: Map; -}; - -export type LastBlockBundleIndexKey = - `lastBlockBundleIndex:${string}-${string}`; -export type AllTimeHighStakedKey = `allTimeHighStaked:${string}`; -export type AllTimeHighSharePriceKey = - `allTimeHighSharePrice:${string}:${string}`; -type InternalKeyStore = - | LastBlockBundleIndexKey - | AllTimeHighStakedKey - | AllTimeHighSharePriceKey; + bundles: Map + bundleAuthors: Map + domainBlocks: Map + operatorRewardedEvents: Map + stats: Map + statsPerDomain: Map + statsPerOperator: Map + statsPerAccount: Map + statsPerNominator: Map +} + +export type LastBlockBundleIndexKey = `lastBlockBundleIndex:${string}-${string}` +export type AllTimeHighStakedKey = `allTimeHighStaked:${string}` +export type AllTimeHighSharePriceKey = `allTimeHighSharePrice:${string}:${string}` +type InternalKeyStore = LastBlockBundleIndexKey | AllTimeHighStakedKey | AllTimeHighSharePriceKey type CacheManager = { - isModified: boolean; - internalKeyStore: Map; -}; + isModified: boolean + internalKeyStore: Map +} -export type Cache = PermanentCache & TemporaryCache & CacheManager; +export type Cache = PermanentCache & TemporaryCache & CacheManager export const initPermanentCache: PermanentCache = { domains: new Map(), @@ -67,7 +62,7 @@ export const initPermanentCache: PermanentCache = { deposits: new Map(), withdrawals: new Map(), domainEpochs: new Map(), -}; +} export const initTemporaryCache: TemporaryCache = { bundles: new Map(), @@ -79,48 +74,41 @@ export const initTemporaryCache: TemporaryCache = { statsPerOperator: new Map(), statsPerAccount: new Map(), statsPerNominator: new Map(), -}; +} export const initCacheManager: CacheManager = { isModified: false, internalKeyStore: new Map(), -}; +} export const initCache: Cache = { ...initPermanentCache, ...initTemporaryCache, ...initCacheManager, -}; +} export const load = async (ctx: Ctx): Promise => { - const [ - domains, - accounts, - operators, - nominators, - deposits, - withdrawals, - domainEpochs, - ] = await Promise.all([ - ctx.store.find(Domain), - ctx.store.find(Account), - ctx.store.find(Operator), - ctx.store.find(Nominator), - ctx.store.find(Deposit), - ctx.store.find(Withdrawal), - ctx.store.find(DomainEpoch), - ]); + const [domains, accounts, operators, nominators, deposits, withdrawals, domainEpochs] = + await Promise.all([ + ctx.store.find(Domain), + ctx.store.find(Account), + ctx.store.find(Operator), + ctx.store.find(Nominator), + ctx.store.find(Deposit), + ctx.store.find(Withdrawal), + ctx.store.find(DomainEpoch), + ]) console.log( - "\x1b[32mLoaded in cache:\x1b[0m", - domains.length + " domains, ", - accounts.length + " accounts, ", - operators.length + " operators, ", - nominators.length + " nominators, ", - deposits.length + " deposits, ", - withdrawals.length + " withdrawals, ", - domainEpochs.length + " domainEpochs" - ); + '\x1b[32mLoaded in cache:\x1b[0m', + domains.length + ' domains, ', + accounts.length + ' accounts, ', + operators.length + ' operators, ', + nominators.length + ' nominators, ', + deposits.length + ' deposits, ', + withdrawals.length + ' withdrawals, ', + domainEpochs.length + ' domainEpochs', + ) return { ...initCache, @@ -131,71 +119,65 @@ export const load = async (ctx: Ctx): Promise => { deposits: new Map(deposits.map((d) => [d.id, d])), withdrawals: new Map(withdrawals.map((w) => [w.id, w])), domainEpochs: new Map(domainEpochs.map((de) => [de.id, de])), - }; -}; - -const saveEntry = async ( - ctx: Ctx, - cache: Cache, - name: keyof Cache -) => { + } +} + +const saveEntry = async (ctx: Ctx, cache: Cache, name: keyof Cache) => { try { - const entity = cache[name] as unknown as Map; - if (entity.size === 0) return; + const entity = cache[name] as unknown as Map + if (entity.size === 0) return - await ctx.store.save(Array.from(entity.values())); + await ctx.store.save(Array.from(entity.values())) } catch (e) { - console.error(`Failed to save ${name} with error:`, e); + console.error(`Failed to save ${name} with error:`, e) } -}; +} const logEntry = (name: string, entry: Map) => - entry.size > 0 ? entry.size + " " + name + ", " : ""; + entry.size > 0 ? entry.size + ' ' + name + ', ' : '' export const save = async (ctx: Ctx, cache: Cache) => { // If the cache is not modified, skip saving - if (!cache.isModified) return; - - let logPerm = logEntry("domains", cache.domains); - logPerm += logEntry("accounts", cache.accounts); - logPerm += logEntry("operators", cache.operators); - logPerm += logEntry("nominators", cache.nominators); - logPerm += logEntry("deposits", cache.deposits); - logPerm += logEntry("withdrawals", cache.withdrawals); - logPerm += logEntry("domainEpochs", cache.domainEpochs); - - let logTemp = logEntry("bundles", cache.bundles); - logTemp += logEntry("bundleAuthors", cache.bundleAuthors); - logTemp += logEntry("domainBlocks", cache.domainBlocks); - logTemp += logEntry("operatorRewardedEvents", cache.operatorRewardedEvents); - logTemp += logEntry("stats", cache.stats); - logTemp += logEntry("statsPerDomain", cache.statsPerDomain); - logTemp += logEntry("statsPerOperator", cache.statsPerOperator); - logTemp += logEntry("statsPerAccount", cache.statsPerAccount); - logTemp += logEntry("statsPerNominator", cache.statsPerNominator); - - console.log("\x1b[34mSaving in database:\x1b[0m", logPerm); - console.log(" and ", logTemp, "\n"); + if (!cache.isModified) return + + let logPerm = logEntry('domains', cache.domains) + logPerm += logEntry('accounts', cache.accounts) + logPerm += logEntry('operators', cache.operators) + logPerm += logEntry('nominators', cache.nominators) + logPerm += logEntry('deposits', cache.deposits) + logPerm += logEntry('withdrawals', cache.withdrawals) + logPerm += logEntry('domainEpochs', cache.domainEpochs) + + let logTemp = logEntry('bundles', cache.bundles) + logTemp += logEntry('bundleAuthors', cache.bundleAuthors) + logTemp += logEntry('domainBlocks', cache.domainBlocks) + logTemp += logEntry('operatorRewardedEvents', cache.operatorRewardedEvents) + logTemp += logEntry('stats', cache.stats) + logTemp += logEntry('statsPerDomain', cache.statsPerDomain) + logTemp += logEntry('statsPerOperator', cache.statsPerOperator) + logTemp += logEntry('statsPerAccount', cache.statsPerAccount) + logTemp += logEntry('statsPerNominator', cache.statsPerNominator) + + console.log('\x1b[34mSaving in database:\x1b[0m', logPerm) + console.log(' and ', logTemp, '\n') await Promise.all( Object.keys(cache).map((k) => - !Object.keys(initCacheManager).includes(k) - ? saveEntry(ctx, cache, k as keyof Cache) - : null - ) - ); + !Object.keys(initCacheManager).includes(k) ? saveEntry(ctx, cache, k as keyof Cache) : null, + ), + ) // Clear the cache for entries not needed for reference - cache.internalKeyStore.clear(); - cache.bundles.clear(); - cache.bundleAuthors.clear(); - cache.operatorRewardedEvents.clear(); - cache.domainBlocks.clear(); - cache.stats.clear(); - cache.statsPerDomain.clear(); - cache.statsPerOperator.clear(); - cache.statsPerAccount.clear(); - cache.statsPerNominator.clear(); - - cache.isModified = false; -}; + cache.internalKeyStore.clear() + cache.bundles.clear() + cache.bundleAuthors.clear() + cache.operatorRewardedEvents.clear() + cache.domainBlocks.clear() + cache.stats.clear() + cache.statsPerDomain.clear() + cache.statsPerOperator.clear() + cache.statsPerAccount.clear() + cache.statsPerNominator.clear() + + cache.isModified = false +} diff --git a/indexers/staking-squid/src/utils/index.ts b/indexers/staking-squid/src/utils/index.ts index a2eda3ccf..6b3fbef5a 100644 --- a/indexers/staking-squid/src/utils/index.ts +++ b/indexers/staking-squid/src/utils/index.ts @@ -1,80 +1,75 @@ -import { DEFAULT_SS58_FORMAT } from "@autonomys/auto-utils"; -import { codec } from "@subsquid/ss58"; -import type { Store } from "@subsquid/typeorm-store"; -import { decodeHex } from "@subsquid/util-internal-hex"; -import type { CtxBlock, ProcessorContext } from "../processor"; +import { DEFAULT_SS58_FORMAT } from '@autonomys/auto-utils' +import { codec } from '@subsquid/ss58' +import type { Store } from '@subsquid/typeorm-store' +import { decodeHex } from '@subsquid/util-internal-hex' +import type { CtxBlock, ProcessorContext } from '../processor' -export const SHARES_CALCULATION_MULTIPLIER = BigInt(1000000000000); +export const SHARES_CALCULATION_MULTIPLIER = BigInt(1000000000000) export const hexToAccount = (hex: string): string => { try { - return codec(DEFAULT_SS58_FORMAT).encode(decodeHex(hex)); + return codec(DEFAULT_SS58_FORMAT).encode(decodeHex(hex)) } catch (error) { - console.error("Failed to convert hex to account:", error); - return ""; + console.error('Failed to convert hex to account:', error) + return '' } -}; +} export const getCallSigner = ( - call: ProcessorContext["blocks"][0]["extrinsics"][0]["call"] + call: ProcessorContext['blocks'][0]['extrinsics'][0]['call'], ): string => { try { - return hexToAccount((call as any).origin.value.value); + return hexToAccount((call as any).origin.value.value) } catch (error) { - console.error("Failed to get call signer:", error); - return ""; + console.error('Failed to get call signer:', error) + return '' } -}; +} export const appendOrArray = (arr: T[] | undefined, item: T): T[] => - arr ? [...arr, item] : [item]; + arr ? [...arr, item] : [item] -export const getBlockNumber = (block: CtxBlock): number => block.header.height; +export const getBlockNumber = (block: CtxBlock): number => block.header.height -export const getTimestamp = (block: CtxBlock): Date => - new Date(block.header.timestamp ?? 0); +export const getTimestamp = (block: CtxBlock): Date => new Date(block.header.timestamp ?? 0) -export const domainUID = (domainId: number): string => `${domainId}`; +export const domainUID = (domainId: number): string => `${domainId}` -export const operatorUID = (operatorId: number): string => `${operatorId}`; +export const operatorUID = (operatorId: number): string => `${operatorId}` export const nominatorUID = (operatorId: number, account: string): string => - `${operatorId}-${account}`; + `${operatorId}-${account}` export const bundleUID = ( domainId: number | string, domainBlockHeight: number | string, - domainBlockBundleIndex: number | string -): string => `${domainId}-${domainBlockHeight}-${domainBlockBundleIndex}`; + domainBlockBundleIndex: number | string, +): string => `${domainId}-${domainBlockHeight}-${domainBlockBundleIndex}` -export const epochUID = ( - domainId: number | string, - epoch: number | string -): string => `${domainId}-${epoch}`; +export const epochUID = (domainId: number | string, epoch: number | string): string => + `${domainId}-${epoch}` -export const blockUID = ( - domainId: number | string, - blockNumber: number | string -): string => `${domainId}-${blockNumber}`; +export const blockUID = (domainId: number | string, blockNumber: number | string): string => + `${domainId}-${blockNumber}` export const depositUID = ( operatorId: number | string, accountId: string, - depositIndex: number | string -): string => `${operatorId}-${accountId}-${depositIndex}`; + depositIndex: number | string, +): string => `${operatorId}-${accountId}-${depositIndex}` export const withdrawalUID = ( operatorId: number | string, accountId: string, - withdrawalIndex: number | string -): string => `${operatorId}-${accountId}-${withdrawalIndex}`; + withdrawalIndex: number | string, +): string => `${operatorId}-${accountId}-${withdrawalIndex}` export const logBlock = (blocks: CtxBlock[]): void => { - const from = getBlockNumber(blocks[0]); - const to = getBlockNumber(blocks[blocks.length - 1]); + const from = getBlockNumber(blocks[0]) + const to = getBlockNumber(blocks[blocks.length - 1]) return console.log( - "\x1b[33mProcessing " + blocks.length + " blocks\x1b[0m", - "From " + from, - "to " + to + " (" + (to - from) + " blocks)" - ); -}; + '\x1b[33mProcessing ' + blocks.length + ' blocks\x1b[0m', + 'From ' + from, + 'to ' + to + ' (' + (to - from) + ' blocks)', + ) +} diff --git a/lerna.json b/lerna.json new file mode 100644 index 000000000..847a51415 --- /dev/null +++ b/lerna.json @@ -0,0 +1,5 @@ +{ + "$schema": "node_modules/lerna/schemas/lerna-schema.json", + "version": "0.0.0", + "npmClient": "yarn" +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..47201bce7 --- /dev/null +++ b/package.json @@ -0,0 +1,51 @@ +{ + "name": "astral", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "private": true, + "repository": { + "type": "git", + "url": "https://github.com/autonomys/astral" + }, + "author": { + "name": "Autonomys", + "url": "https://www.autonomys.xyz" + }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, + "workspaces": { + "packages": [ + "indexers/db", + "indexers/consensus-squid", + "indexers/leaderboard-squid", + "indexers/staking-squid", + "explorer" + ] + }, + "scripts": { + "up": "docker compose up", + "down": "docker compose down", + "db": "lerna run start --scope=db", + "db:metadata": "lerna run metadata --scope=db", + "explorer:dev": "lerna run dev --scope=explorer", + "explorer:codegen": "lerna run codegen --scope=explorer", + "explorer:build": "lerna run build --scope=explorer", + "explorer:test": "lerna run test --scope=explorer", + "explorer:lint": "lerna run lint --scope=explorer", + "explorer:lint:fix": "lerna run lint:fix --scope=explorer", + "explorer:format": "lerna run format --scope=explorer", + "explorer": "lerna run all --scope=explorer", + "indexers:typegen": "lerna run typegen --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:codegen": "lerna run codegen --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:migration": "lerna run migration --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:build": "lerna run build --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:process": "lerna run process --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:format": "lerna run format --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers": "yarn indexers:typegen && yarn indexers:codegen && yarn indexers:migration && yarn indexers:build && yarn indexers:process" + }, + "devDependencies": { + "lerna": "^8.1.8" + } +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..5e14d66b5 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,14539 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adobe/css-tools@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.0.tgz#728c484f4e10df03d5a3acd0d8adcbbebff8ad63" + integrity sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ== + +"@adraffy/ens-normalize@1.10.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" + integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== + +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@apideck/better-ajv-errors@^0.3.1": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz#957d4c28e886a64a8141f7522783be65733ff097" + integrity sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA== + dependencies: + json-schema "^0.4.0" + jsonpointer "^5.0.0" + leven "^3.1.0" + +"@apollo/client@^3.7.0": + version "3.11.4" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.11.4.tgz#8b0fed2d091d47597e8ddafca85776bf612ae3aa" + integrity sha512-bmgYKkULpym8wt8aXlAZ1heaYo0skLJ5ru0qJ+JCRoo03Pe+yIDbBCnqlDw6Mjj76hFkDw3HwFMgZC2Hxp30Mg== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + "@wry/caches" "^1.0.0" + "@wry/equality" "^0.5.6" + "@wry/trie" "^0.5.0" + graphql-tag "^2.12.6" + hoist-non-react-statics "^3.3.2" + optimism "^0.18.0" + prop-types "^15.7.2" + rehackt "^0.1.0" + response-iterator "^0.2.6" + symbol-observable "^4.0.0" + ts-invariant "^0.10.3" + tslib "^2.3.0" + zen-observable-ts "^1.2.5" + +"@apollo/experimental-nextjs-app-support@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@apollo/experimental-nextjs-app-support/-/experimental-nextjs-app-support-0.8.0.tgz#7c6627195d1895bd7698b29174afe85dc9013ddf" + integrity sha512-uyNIkOkew0T6ukC8ycbWBeTu8gtDSD5i+NVGEHU0DIEQaToFHObYcvIxaQ/8hvWzgvnpNU/KMsApfGXA9Xkpyw== + dependencies: + server-only "^0.0.1" + superjson "^1.12.2 || ^2.0.0" + ts-invariant "^0.10.3" + +"@apollo/protobufjs@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.6.tgz#d601e65211e06ae1432bf5993a1a0105f2862f27" + integrity sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + +"@apollo/protobufjs@1.2.7": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.7.tgz#3a8675512817e4a046a897e5f4f16415f16a7d8a" + integrity sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + long "^4.0.0" + +"@apollo/usage-reporting-protobuf@^4.0.0": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz#407c3d18c7fbed7a264f3b9a3812620b93499de1" + integrity sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA== + dependencies: + "@apollo/protobufjs" "1.2.7" + +"@apollo/utils.dropunuseddefinitions@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz#02b04006442eaf037f4c4624146b12775d70d929" + integrity sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg== + +"@apollo/utils.keyvadapter@~1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@apollo/utils.keyvadapter/-/utils.keyvadapter-1.1.2.tgz#e0aceed9eba21e0d155342accfb22a9e743ced5e" + integrity sha512-vPC5e97uwHuZ2iMHVrEeRsV4dLw0lNx2UY9APhb7StC/RMR3BdnuPwS/+5yR9tUF5IUut+iJZocHkS4y6mR9aA== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + dataloader "^2.1.0" + keyv "^4.4.0" + +"@apollo/utils.keyvaluecache@^1.0.1", "@apollo/utils.keyvaluecache@~1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz#2bfe358c4d82f3a0950518451996758c52613f57" + integrity sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg== + dependencies: + "@apollo/utils.logger" "^1.0.0" + lru-cache "7.10.1 - 7.13.1" + +"@apollo/utils.logger@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@apollo/utils.logger/-/utils.logger-1.0.1.tgz#aea0d1bb7ceb237f506c6bbf38f10a555b99a695" + integrity sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA== + +"@apollo/utils.printwithreducedwhitespace@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz#c466299a4766eef8577a2a64c8f27712e8bd7e30" + integrity sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q== + +"@apollo/utils.removealiases@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz#75f6d83098af1fcae2d3beb4f515ad4a8452a8c1" + integrity sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A== + +"@apollo/utils.sortast@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz#93218c7008daf3e2a0725196085a33f5aab5ad07" + integrity sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA== + dependencies: + lodash.sortby "^4.7.0" + +"@apollo/utils.stripsensitiveliterals@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz#4920651f36beee8e260e12031a0c5863ad0c7b28" + integrity sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w== + +"@apollo/utils.usagereporting@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz#3c70b49e554771659576fe35381c7a4b321d27fd" + integrity sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ== + dependencies: + "@apollo/usage-reporting-protobuf" "^4.0.0" + "@apollo/utils.dropunuseddefinitions" "^1.1.0" + "@apollo/utils.printwithreducedwhitespace" "^1.1.0" + "@apollo/utils.removealiases" "1.0.0" + "@apollo/utils.sortast" "^1.1.0" + "@apollo/utils.stripsensitiveliterals" "^1.2.0" + +"@apollographql/apollo-tools@^0.5.3": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz#cb3998c6cf12e494b90c733f44dd9935e2d8196c" + integrity sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw== + +"@apollographql/graphql-playground-html@1.6.29": + version "1.6.29" + resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz#a7a646614a255f62e10dcf64a7f68ead41dec453" + integrity sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA== + dependencies: + xss "^1.0.8" + +"@ardatan/relay-compiler@12.0.0": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz#2e4cca43088e807adc63450e8cab037020e91106" + integrity sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q== + dependencies: + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/parser" "^7.14.0" + "@babel/runtime" "^7.0.0" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.0.0" + babel-preset-fbjs "^3.4.0" + chalk "^4.0.0" + fb-watchman "^2.0.0" + fbjs "^3.0.0" + glob "^7.1.1" + immutable "~3.7.6" + invariant "^2.2.4" + nullthrows "^1.1.1" + relay-runtime "12.0.0" + signedsource "^1.0.0" + yargs "^15.3.1" + +"@ardatan/sync-fetch@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz#3385d3feedceb60a896518a1db857ec1e945348f" + integrity sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA== + dependencies: + node-fetch "^2.6.1" + +"@autonomys/auto-consensus@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@autonomys/auto-consensus/-/auto-consensus-0.2.0.tgz#477836ef1e68e9b9abf47f7e60bce6a150eb4089" + integrity sha512-2kfHOVOXgdhoMAcRP46J4Tk3qeuT/CHetJNtjcVPY0H3ojGPpmfaFg2jBenQqGz59TacjSjLhSouA5UlY7iDJg== + dependencies: + "@autonomys/auto-utils" "^0.2.0" + +"@autonomys/auto-utils@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@autonomys/auto-utils/-/auto-utils-0.2.0.tgz#f30eeae96ecd2ea51f45b76c6aa006c5cb574b0e" + integrity sha512-uu4OxTWXGQk09HxmQsJQTmrcKAqwdTdGQy/zUloVm5/IAYPKmI1ttSPI/5BSUxeoKsBd69XFfb3wqtYfO5/ytw== + dependencies: + "@polkadot/api" "^11.2.1" + "@polkadot/extension-dapp" "^0.47.5" + fs "^0.0.1-security" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" + +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.2.tgz#e41928bd33475305c586f6acbbb7e3ade7a6f7f5" + integrity sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ== + +"@babel/core@^7.11.1", "@babel/core@^7.14.0", "@babel/core@^7.21.3", "@babel/core@^7.22.9": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77" + integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.0" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-module-transforms" "^7.25.2" + "@babel/helpers" "^7.25.0" + "@babel/parser" "^7.25.0" + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.2" + "@babel/types" "^7.25.2" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.0.tgz#f858ddfa984350bc3d3b7f125073c9af6988f18e" + integrity sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw== + dependencies: + "@babel/types" "^7.25.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab" + integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz#37d66feb012024f2422b762b9b2a7cfe27c7fba3" + integrity sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7", "@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz#e1d9410a90974a3a5a66e84ff55ef62e3c02d06c" + integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== + dependencies: + "@babel/compat-data" "^7.25.2" + "@babel/helper-validator-option" "^7.24.8" + browserslist "^4.23.1" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz#a109bf9c3d58dfed83aaf42e85633c89f43a6253" + integrity sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.8" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/helper-replace-supers" "^7.25.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/traverse" "^7.25.0" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7", "@babel/helper-create-regexp-features-plugin@^7.25.0": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz#24c75974ed74183797ffd5f134169316cd1808d9" + integrity sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d" + integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-member-expression-to-functions@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz#6155e079c913357d24a4c20480db7c712a5c3fb6" + integrity sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA== + dependencies: + "@babel/traverse" "^7.24.8" + "@babel/types" "^7.24.8" + +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-transforms@^7.24.7", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.25.0", "@babel/helper-module-transforms@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz#ee713c29768100f2776edf04d4eb23b8d27a66e6" + integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.2" + +"@babel/helper-optimise-call-expression@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz#8b0a0456c92f6b323d27cfd00d1d664e76692a0f" + integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" + integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== + +"@babel/helper-remap-async-to-generator@^7.24.7", "@babel/helper-remap-async-to-generator@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz#d2f0fbba059a42d68e5e378feaf181ef6055365e" + integrity sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-wrap-function" "^7.25.0" + "@babel/traverse" "^7.25.0" + +"@babel/helper-replace-supers@^7.24.7", "@babel/helper-replace-supers@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz#ff44deac1c9f619523fe2ca1fd650773792000a9" + integrity sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.24.8" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/traverse" "^7.25.0" + +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9" + integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/helper-validator-option@^7.24.7", "@babel/helper-validator-option@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" + integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== + +"@babel/helper-wrap-function@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz#dab12f0f593d6ca48c0062c28bcfb14ebe812f81" + integrity sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ== + dependencies: + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/helpers@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.0.tgz#e69beb7841cb93a6505531ede34f34e6a073650a" + integrity sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw== + dependencies: + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.14.0", "@babel/parser@^7.16.8", "@babel/parser@^7.25.0", "@babel/parser@^7.25.3": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.3.tgz#91fb126768d944966263f0657ab222a642b82065" + integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== + dependencies: + "@babel/types" "^7.25.2" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.3": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz#dca427b45a6c0f5c095a1c639dfe2476a3daba7f" + integrity sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.3" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz#cd0c583e01369ef51676bdb3d7b603e17d2b3f73" + integrity sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz#749bde80356b295390954643de7635e0dffabe73" + integrity sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz#e4eabdd5109acc399b38d7999b2ef66fc2022f89" + integrity sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.7" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz#3a82a70e7cb7294ad2559465ebcb871dfbf078fb" + integrity sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.0" + +"@babel/plugin-proposal-class-properties@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-object-rest-spread@^7.0.0": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz#d1759e84dd4b437cf9fae69b4c06c41d7625bfb7" + integrity sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-assertions@^7.20.0", "@babel/plugin-syntax-import-assertions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz#2a0b406b5871a20a841240586b1300ce2088a778" + integrity sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca" + integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d" + integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz#58d458271b4d3b6bb27ee6ac9525acbb259bad1c" + integrity sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz#4f6886c11e423bd69f3ce51dbf42424a5f275514" + integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-async-generator-functions@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz#b785cf35d73437f6276b1e30439a57a50747bddf" + integrity sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-remap-async-to-generator" "^7.25.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/traverse" "^7.25.0" + +"@babel/plugin-transform-async-to-generator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz#72a3af6c451d575842a7e9b5a02863414355bdcc" + integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-remap-async-to-generator" "^7.24.7" + +"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz#a4251d98ea0c0f399dafe1a35801eaba455bbf1f" + integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz#23a6ed92e6b006d26b1869b1c91d1b917c2ea2ac" + integrity sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-class-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz#256879467b57b0b68c7ddfc5b76584f398cd6834" + integrity sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-class-static-block@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz#c82027ebb7010bc33c116d4b5044fbbf8c05484d" + integrity sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz#63122366527d88e0ef61b612554fe3f8c793991e" + integrity sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-replace-supers" "^7.25.0" + "@babel/traverse" "^7.25.0" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz#4cab3214e80bc71fae3853238d13d097b004c707" + integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/template" "^7.24.7" + +"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz#c828e814dbe42a2718a838c2a2e16a408e055550" + integrity sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-dotall-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz#5f8bf8a680f2116a7207e16288a5f974ad47a7a0" + integrity sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-duplicate-keys@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz#dd20102897c9a2324e5adfffb67ff3610359a8ee" + integrity sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz#809af7e3339466b49c034c683964ee8afb3e2604" + integrity sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-dynamic-import@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz#4d8b95e3bae2b037673091aa09cd33fecd6419f4" + integrity sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz#b629ee22645f412024297d5245bce425c31f9b0d" + integrity sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-export-namespace-from@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz#176d52d8d8ed516aeae7013ee9556d540c53f197" + integrity sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-flow-strip-types@^7.0.0": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.2.tgz#b3aa251db44959b7a7c82abcd6b4225dec7d2258" + integrity sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/plugin-syntax-flow" "^7.24.7" + +"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz#f25b33f72df1d8be76399e1b8f3f9d366eb5bc70" + integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + +"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.25.1": + version "7.25.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz#b85e773097526c1a4fc4ba27322748643f26fc37" + integrity sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA== + dependencies: + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.1" + +"@babel/plugin-transform-json-strings@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz#f3e9c37c0a373fee86e36880d45b3664cedaf73a" + integrity sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz#deb1ad14fc5490b9a65ed830e025bca849d8b5f3" + integrity sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-logical-assignment-operators@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz#a58fb6eda16c9dc8f9ff1c7b1ba6deb7f4694cb0" + integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz#3b4454fb0e302e18ba4945ba3246acb1248315df" + integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-modules-amd@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz#65090ed493c4a834976a3ca1cde776e6ccff32d7" + integrity sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg== + dependencies: + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.24.7", "@babel/plugin-transform-modules-commonjs@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz#ab6421e564b717cb475d6fff70ae7f103536ea3c" + integrity sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA== + dependencies: + "@babel/helper-module-transforms" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-simple-access" "^7.24.7" + +"@babel/plugin-transform-modules-systemjs@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz#8f46cdc5f9e5af74f3bd019485a6cbe59685ea33" + integrity sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw== + dependencies: + "@babel/helper-module-transforms" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.0" + +"@babel/plugin-transform-modules-umd@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz#edd9f43ec549099620df7df24e7ba13b5c76efc8" + integrity sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A== + dependencies: + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz#9042e9b856bc6b3688c0c2e4060e9e10b1460923" + integrity sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-new-target@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz#31ff54c4e0555cc549d5816e4ab39241dfb6ab00" + integrity sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120" + integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz#bea62b538c80605d8a0fac9b40f48e97efa7de63" + integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz#d13a2b93435aeb8a197e115221cab266ba6e55d6" + integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q== + dependencies: + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.24.7" + +"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz#66eeaff7830bba945dd8989b632a40c04ed625be" + integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-replace-supers" "^7.24.7" + +"@babel/plugin-transform-optional-catch-binding@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz#00eabd883d0dd6a60c1c557548785919b6e717b4" + integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.24.7", "@babel/plugin-transform-optional-chaining@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz#bb02a67b60ff0406085c13d104c99a835cdf365d" + integrity sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz#5881f0ae21018400e320fc7eb817e529d1254b68" + integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-private-methods@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz#e6318746b2ae70a59d023d5cc1344a2ba7a75f5e" + integrity sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-private-property-in-object@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz#4eec6bc701288c1fab5f72e6a4bbc9d67faca061" + integrity sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz#f0d2ed8380dfbed949c42d4d790266525d63bbdc" + integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-react-constant-elements@^7.21.3": + version "7.25.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.1.tgz#71a665ed16ce618067d05f4a98130207349d82ae" + integrity sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-react-display-name@^7.0.0", "@babel/plugin-transform-react-display-name@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz#9caff79836803bc666bcfe210aeb6626230c293b" + integrity sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-react-jsx-development@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz#eaee12f15a93f6496d852509a850085e6361470b" + integrity sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.24.7" + +"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.24.7": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz#e37e8ebfa77e9f0b16ba07fadcb6adb47412227a" + integrity sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/plugin-syntax-jsx" "^7.24.7" + "@babel/types" "^7.25.2" + +"@babel/plugin-transform-react-pure-annotations@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz#bdd9d140d1c318b4f28b29a00fb94f97ecab1595" + integrity sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-regenerator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz#021562de4534d8b4b1851759fd7af4e05d2c47f8" + integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz#80037fe4fbf031fc1125022178ff3938bb3743a4" + integrity sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz#85448c6b996e122fa9e289746140aaa99da64e73" + integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz#e8a38c0fde7882e0fb8f160378f74bd885cc7bb3" + integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + +"@babel/plugin-transform-sticky-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz#96ae80d7a7e5251f657b5cf18f1ea6bf926f5feb" + integrity sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz#a05debb4a9072ae8f985bcf77f3f215434c8f8c8" + integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-typeof-symbol@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz#383dab37fb073f5bfe6e60c654caac309f92ba1c" + integrity sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-typescript@^7.24.7": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz#237c5d10de6d493be31637c6b9fa30b6c5461add" + integrity sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-syntax-typescript" "^7.24.7" + +"@babel/plugin-transform-unicode-escapes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz#2023a82ced1fb4971630a2e079764502c4148e0e" + integrity sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-property-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz#9073a4cd13b86ea71c3264659590ac086605bbcd" + integrity sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz#dfc3d4a51127108099b19817c0963be6a2adf19f" + integrity sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-sets-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz#d40705d67523803a576e29c63cef6e516b858ed9" + integrity sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.20.2": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.3.tgz#0bf4769d84ac51d1073ab4a86f00f30a3a83c67c" + integrity sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g== + dependencies: + "@babel/compat-data" "^7.25.2" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-validator-option" "^7.24.8" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.3" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.0" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.0" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.24.7" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.24.7" + "@babel/plugin-transform-async-generator-functions" "^7.25.0" + "@babel/plugin-transform-async-to-generator" "^7.24.7" + "@babel/plugin-transform-block-scoped-functions" "^7.24.7" + "@babel/plugin-transform-block-scoping" "^7.25.0" + "@babel/plugin-transform-class-properties" "^7.24.7" + "@babel/plugin-transform-class-static-block" "^7.24.7" + "@babel/plugin-transform-classes" "^7.25.0" + "@babel/plugin-transform-computed-properties" "^7.24.7" + "@babel/plugin-transform-destructuring" "^7.24.8" + "@babel/plugin-transform-dotall-regex" "^7.24.7" + "@babel/plugin-transform-duplicate-keys" "^7.24.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.0" + "@babel/plugin-transform-dynamic-import" "^7.24.7" + "@babel/plugin-transform-exponentiation-operator" "^7.24.7" + "@babel/plugin-transform-export-namespace-from" "^7.24.7" + "@babel/plugin-transform-for-of" "^7.24.7" + "@babel/plugin-transform-function-name" "^7.25.1" + "@babel/plugin-transform-json-strings" "^7.24.7" + "@babel/plugin-transform-literals" "^7.25.2" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.7" + "@babel/plugin-transform-member-expression-literals" "^7.24.7" + "@babel/plugin-transform-modules-amd" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.8" + "@babel/plugin-transform-modules-systemjs" "^7.25.0" + "@babel/plugin-transform-modules-umd" "^7.24.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.7" + "@babel/plugin-transform-new-target" "^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.7" + "@babel/plugin-transform-numeric-separator" "^7.24.7" + "@babel/plugin-transform-object-rest-spread" "^7.24.7" + "@babel/plugin-transform-object-super" "^7.24.7" + "@babel/plugin-transform-optional-catch-binding" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.8" + "@babel/plugin-transform-parameters" "^7.24.7" + "@babel/plugin-transform-private-methods" "^7.24.7" + "@babel/plugin-transform-private-property-in-object" "^7.24.7" + "@babel/plugin-transform-property-literals" "^7.24.7" + "@babel/plugin-transform-regenerator" "^7.24.7" + "@babel/plugin-transform-reserved-words" "^7.24.7" + "@babel/plugin-transform-shorthand-properties" "^7.24.7" + "@babel/plugin-transform-spread" "^7.24.7" + "@babel/plugin-transform-sticky-regex" "^7.24.7" + "@babel/plugin-transform-template-literals" "^7.24.7" + "@babel/plugin-transform-typeof-symbol" "^7.24.8" + "@babel/plugin-transform-unicode-escapes" "^7.24.7" + "@babel/plugin-transform-unicode-property-regex" "^7.24.7" + "@babel/plugin-transform-unicode-regex" "^7.24.7" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.7" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.37.1" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.18.6": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.24.7.tgz#480aeb389b2a798880bf1f889199e3641cbb22dc" + integrity sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-transform-react-display-name" "^7.24.7" + "@babel/plugin-transform-react-jsx" "^7.24.7" + "@babel/plugin-transform-react-jsx-development" "^7.24.7" + "@babel/plugin-transform-react-pure-annotations" "^7.24.7" + +"@babel/preset-typescript@^7.21.0": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz#66cd86ea8f8c014855671d5ea9a737139cbbfef1" + integrity sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-syntax-jsx" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.7" + "@babel/plugin-transform-typescript" "^7.24.7" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.13", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb" + integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.24.7", "@babel/template@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" + integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.3": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.3.tgz#f1b901951c83eda2f3e29450ce92743783373490" + integrity sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.0" + "@babel/parser" "^7.25.3" + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.2" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.21.3", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.4.4": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.2.tgz#55fb231f7dc958cd69ea141a4c2997e819646125" + integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + +"@discordjs/collection@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-2.1.0.tgz#f327d944ab2dcf9a1f674470a481f78a120a5e3b" + integrity sha512-mLcTACtXUuVgutoznkh6hS3UFqYirDYAg5Dc1m8xn6OvPjetnUlf/xjtqnnc47OwWdaoCQnHmHh9KofhD6uRqw== + +"@discordjs/rest@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@discordjs/rest/-/rest-2.3.0.tgz#06d37c7fb54a9be61134b5bbb201abd760343472" + integrity sha512-C1kAJK8aSYRv3ZwMG8cvrrW4GN0g5eMdP8AuN8ODH5DyOCbHgJspze1my3xHOAgwLJdKUbWNVyAeJ9cEdduqIg== + dependencies: + "@discordjs/collection" "^2.1.0" + "@discordjs/util" "^1.1.0" + "@sapphire/async-queue" "^1.5.2" + "@sapphire/snowflake" "^3.5.3" + "@vladfrangu/async_event_emitter" "^2.2.4" + discord-api-types "0.37.83" + magic-bytes.js "^1.10.0" + tslib "^2.6.2" + undici "6.13.0" + +"@discordjs/util@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-1.1.0.tgz#dcffd2b61aab8eadd66bea67811bc34fc769bb2a" + integrity sha512-IndcI5hzlNZ7GS96RV3Xw1R2kaDuXEp7tRIy/KlhidpN/BQ1qh1NZt3377dMLTa44xDUNKT7hnXkA/oUAzD/lg== + +"@emnapi/core@^1.1.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.2.0.tgz#7b738e5033738132bf6af0b8fae7b05249bdcbd7" + integrity sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w== + dependencies: + "@emnapi/wasi-threads" "1.0.1" + tslib "^2.4.0" + +"@emnapi/runtime@^1.1.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.2.0.tgz#71d018546c3a91f3b51106530edbc056b9f2f2e3" + integrity sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz#d7ae71fd2166b1c916c6cd2d0df2ef565a2e1a5b" + integrity sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw== + dependencies: + tslib "^2.4.0" + +"@emotion/is-prop-valid@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz#d4175076679c6a26faa92b03bb786f9e52612337" + integrity sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw== + dependencies: + "@emotion/memoize" "^0.8.1" + +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== + +"@emotion/unitless@0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" + integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== + +"@exodus/schemasafe@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@exodus/schemasafe/-/schemasafe-1.3.0.tgz#731656abe21e8e769a7f70a4d833e6312fe59b7f" + integrity sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw== + +"@graphql-codegen/add@^5.0.0": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@graphql-codegen/add/-/add-5.0.3.tgz#1ede6bac9a93661ed7fa5808b203d079e1b1d215" + integrity sha512-SxXPmramkth8XtBlAHu4H4jYcYXM/o3p01+psU+0NADQowA8jtYkK6MW5rV6T+CxkEaNZItfSmZRPgIuypcqnA== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.3" + tslib "~2.6.0" + +"@graphql-codegen/cli@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/cli/-/cli-4.0.1.tgz#2bd494d55aaef0dfe86eefe1fa42bff81f5147fe" + integrity sha512-/H4imnGOl3hoPXLKmIiGUnXpmBmeIClSZie/YHDzD5N59cZlGGJlIOOrUlOTDpJx5JNU1MTQcRjyTToOYM5IfA== + dependencies: + "@babel/generator" "^7.18.13" + "@babel/template" "^7.18.10" + "@babel/types" "^7.18.13" + "@graphql-codegen/core" "^4.0.0" + "@graphql-codegen/plugin-helpers" "^5.0.0" + "@graphql-tools/apollo-engine-loader" "^8.0.0" + "@graphql-tools/code-file-loader" "^8.0.0" + "@graphql-tools/git-loader" "^8.0.0" + "@graphql-tools/github-loader" "^8.0.0" + "@graphql-tools/graphql-file-loader" "^8.0.0" + "@graphql-tools/json-file-loader" "^8.0.0" + "@graphql-tools/load" "^8.0.0" + "@graphql-tools/prisma-loader" "^8.0.0" + "@graphql-tools/url-loader" "^8.0.0" + "@graphql-tools/utils" "^10.0.0" + "@parcel/watcher" "^2.1.0" + "@whatwg-node/fetch" "^0.8.0" + chalk "^4.1.0" + cosmiconfig "^8.1.3" + debounce "^1.2.0" + detect-indent "^6.0.0" + graphql-config "^5.0.2" + inquirer "^8.0.0" + is-glob "^4.0.1" + jiti "^1.17.1" + json-to-pretty-yaml "^1.2.2" + listr2 "^4.0.5" + log-symbols "^4.0.0" + micromatch "^4.0.5" + shell-quote "^1.7.3" + string-env-interpolation "^1.0.1" + ts-log "^2.2.3" + tslib "^2.4.0" + yaml "^1.10.0" + yargs "^17.0.0" + +"@graphql-codegen/client-preset@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@graphql-codegen/client-preset/-/client-preset-4.0.0.tgz#4c271d2abadfba6cdfdb82127b8730f270f38295" + integrity sha512-A96Vc+ZHMoBTO7bH/I/iIqCBsDiXblKqhyMQsSfq79Muvtmhjx4E9Xt4s++/zpBbe4M+46EYLlde2ZIrymSqDw== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/template" "^7.20.7" + "@graphql-codegen/add" "^5.0.0" + "@graphql-codegen/gql-tag-operations" "4.0.0" + "@graphql-codegen/plugin-helpers" "^5.0.0" + "@graphql-codegen/typed-document-node" "^5.0.0" + "@graphql-codegen/typescript" "^4.0.0" + "@graphql-codegen/typescript-operations" "^4.0.0" + "@graphql-codegen/visitor-plugin-common" "^4.0.0" + "@graphql-tools/documents" "^1.0.0" + "@graphql-tools/utils" "^10.0.0" + "@graphql-typed-document-node/core" "3.2.0" + tslib "~2.5.0" + +"@graphql-codegen/core@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@graphql-codegen/core/-/core-4.0.2.tgz#7e6ec266276f54bbf02f60599d9e518f4a59d85e" + integrity sha512-IZbpkhwVqgizcjNiaVzNAzm/xbWT6YnGgeOLwVjm4KbJn3V2jchVtuzHH09G5/WkkLSk2wgbXNdwjM41JxO6Eg== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.3" + "@graphql-tools/schema" "^10.0.0" + "@graphql-tools/utils" "^10.0.0" + tslib "~2.6.0" + +"@graphql-codegen/gql-tag-operations@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@graphql-codegen/gql-tag-operations/-/gql-tag-operations-4.0.0.tgz#1d712c40a2f83e02867e536709c042c20ce0e79a" + integrity sha512-LLbyxjdtK5e78xmcQiy4aXzsttR+3VE8EsiGy9++ih8/JGsqxMcXEy4MtsVGh8KGdP+LCR+jA1o6grzm2tI3cw== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.0" + "@graphql-codegen/visitor-plugin-common" "4.0.0" + "@graphql-tools/utils" "^10.0.0" + auto-bind "~4.0.0" + tslib "~2.5.0" + +"@graphql-codegen/plugin-helpers@^5.0.0", "@graphql-codegen/plugin-helpers@^5.0.3", "@graphql-codegen/plugin-helpers@^5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.0.4.tgz#5f4c987c3f308ef1c8809ee0c43af0369867e0f6" + integrity sha512-MOIuHFNWUnFnqVmiXtrI+4UziMTYrcquljaI5f/T/Bc7oO7sXcfkAvgkNWEEi9xWreYwvuer3VHCuPI/lAFWbw== + dependencies: + "@graphql-tools/utils" "^10.0.0" + change-case-all "1.0.15" + common-tags "1.8.2" + import-from "4.0.0" + lodash "~4.17.0" + tslib "~2.6.0" + +"@graphql-codegen/schema-ast@^4.0.2": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@graphql-codegen/schema-ast/-/schema-ast-4.1.0.tgz#a1e71f99346495b9272161a9ed07756e82648726" + integrity sha512-kZVn0z+th9SvqxfKYgztA6PM7mhnSZaj4fiuBWvMTqA+QqQ9BBed6Pz41KuD/jr0gJtnlr2A4++/0VlpVbCTmQ== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.3" + "@graphql-tools/utils" "^10.0.0" + tslib "~2.6.0" + +"@graphql-codegen/typed-document-node@^5.0.0": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typed-document-node/-/typed-document-node-5.0.9.tgz#0bb72e505d4cf217790b0e761ff9da01f32d81c4" + integrity sha512-Wx6fyA4vpfIbfNTMiWUECGnjqzKkJdEbZHxVMIegiCBPzBYPAJV4mZZcildLAfm2FtZcgW4YKtFoTbnbXqPB3w== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.4" + "@graphql-codegen/visitor-plugin-common" "5.3.1" + auto-bind "~4.0.0" + change-case-all "1.0.15" + tslib "~2.6.0" + +"@graphql-codegen/typescript-operations@^4.0.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-4.2.3.tgz#794e279f54f88f2df56eee6d045d16766ec06008" + integrity sha512-6z7avSSOr03l5SyKbeDs7MzRyGwnQFSCqQm8Om5wIuoIgXVu2gXRmcJAY/I7SLdAy9xbF4Sho7XNqieFM2CAFQ== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.4" + "@graphql-codegen/typescript" "^4.0.9" + "@graphql-codegen/visitor-plugin-common" "5.3.1" + auto-bind "~4.0.0" + tslib "~2.6.0" + +"@graphql-codegen/typescript@^4.0.0", "@graphql-codegen/typescript@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-4.0.9.tgz#25b7999b665d86a6459f90dd22c7ddec12495fdd" + integrity sha512-0O35DMR4d/ctuHL1Zo6mRUUzp0BoszKfeWsa6sCm/g70+S98+hEfTwZNDkQHylLxapiyjssF9uw/F+sXqejqLw== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.4" + "@graphql-codegen/schema-ast" "^4.0.2" + "@graphql-codegen/visitor-plugin-common" "5.3.1" + auto-bind "~4.0.0" + tslib "~2.6.0" + +"@graphql-codegen/visitor-plugin-common@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-4.0.0.tgz#b1db0138ea78b96a1f78b78ebce0443faee27fba" + integrity sha512-OFWr5tkrG4nCcE7AI9BSAwuA0VLP16uNCLssbmXpBa1rKR6b4mX+rJTQCoz47TFV5hii8yp8xaWfXVUcsNY39w== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.0" + "@graphql-tools/optimize" "^2.0.0" + "@graphql-tools/relay-operation-optimizer" "^7.0.0" + "@graphql-tools/utils" "^10.0.0" + auto-bind "~4.0.0" + change-case-all "1.0.15" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.5.0" + +"@graphql-codegen/visitor-plugin-common@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-5.3.1.tgz#d3fb5f6336cbef58e2960471422da3f3caff7f17" + integrity sha512-MktoBdNZhSmugiDjmFl1z6rEUUaqyxtFJYWnDilE7onkPgyw//O0M+TuPBJPBWdyV6J2ond0Hdqtq+rkghgSIQ== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.4" + "@graphql-tools/optimize" "^2.0.0" + "@graphql-tools/relay-operation-optimizer" "^7.0.0" + "@graphql-tools/utils" "^10.0.0" + auto-bind "~4.0.0" + change-case-all "1.0.15" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.6.0" + +"@graphql-codegen/visitor-plugin-common@^4.0.0": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-4.1.2.tgz#674c5d5813f6c00dd65e1ee148a62536879e65e2" + integrity sha512-yk7iEAL1kYZ2Gi/pvVjdsZhul5WsYEM4Zcgh2Ev15VicMdJmPHsMhNUsZWyVJV0CaQCYpNOFlGD/11Ea3pn4GA== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.3" + "@graphql-tools/optimize" "^2.0.0" + "@graphql-tools/relay-operation-optimizer" "^7.0.0" + "@graphql-tools/utils" "^10.0.0" + auto-bind "~4.0.0" + change-case-all "1.0.15" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.6.0" + +"@graphql-tools/apollo-engine-loader@^8.0.0": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-8.0.1.tgz#1ec8718af6130ff8039cd653991412472cdd7e55" + integrity sha512-NaPeVjtrfbPXcl+MLQCJLWtqe2/E4bbAqcauEOQ+3sizw1Fc2CNmhHRF8a6W4D0ekvTRRXAMptXYgA2uConbrA== + dependencies: + "@ardatan/sync-fetch" "^0.0.1" + "@graphql-tools/utils" "^10.0.13" + "@whatwg-node/fetch" "^0.9.0" + tslib "^2.4.0" + +"@graphql-tools/batch-execute@^9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-9.0.4.tgz#11601409c0c33491971fc82592de12390ec58be2" + integrity sha512-kkebDLXgDrep5Y0gK1RN3DMUlLqNhg60OAz0lTCqrYeja6DshxLtLkj+zV4mVbBA4mQOEoBmw6g1LZs3dA84/w== + dependencies: + "@graphql-tools/utils" "^10.0.13" + dataloader "^2.2.2" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/code-file-loader@^8.0.0": + version "8.1.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-8.1.3.tgz#fb5ef691bd671fd3b0d24375f02e7d6e560b4384" + integrity sha512-Qoo8VyU0ux7k20DkzL5wFm7Y6iqlG1GQ0xA4T3EQbm4B/qbENsMc38l76QnXYIVmIlKAnD9EAvzxPEQ8iv+ZPA== + dependencies: + "@graphql-tools/graphql-tag-pluck" "8.3.2" + "@graphql-tools/utils" "^10.0.13" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/delegate@^10.0.4": + version "10.0.19" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-10.0.19.tgz#c99bf8d53d5c438bba49e53f8093dd7c15a286b8" + integrity sha512-y4spKkLnngkr+dCatYvqFtq3zumbnyvpMkP5W2Ooy5DnTEUeiPJQ0h5uqi3EHPEDFC+Rs/opvBdOwFOkMObmXg== + dependencies: + "@graphql-tools/batch-execute" "^9.0.4" + "@graphql-tools/executor" "^1.3.1" + "@graphql-tools/schema" "^10.0.4" + "@graphql-tools/utils" "^10.3.4" + "@repeaterjs/repeater" "^3.0.6" + dataloader "^2.2.2" + tslib "^2.5.0" + +"@graphql-tools/documents@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/documents/-/documents-1.0.1.tgz#ae19cd5667d22c23b331d3a1429443ed7130faee" + integrity sha512-aweoMH15wNJ8g7b2r4C4WRuJxZ0ca8HtNO54rkye/3duxTkW4fGBEutCx03jCIr5+a1l+4vFJNP859QnAVBVCA== + dependencies: + lodash.sortby "^4.7.0" + tslib "^2.4.0" + +"@graphql-tools/executor-graphql-ws@^1.1.2": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-1.2.0.tgz#d5d9a3dd092d00503d6a6576dd0dcaa99bfd122b" + integrity sha512-tSYC1QdrabWexLrYV0UI3uRGbde9WCY/bRhq6Jc+VXMZcfq6ea6pP5NEAVTfwbhUQ4xZvJABVVbKXtKb9uTg1w== + dependencies: + "@graphql-tools/utils" "^10.3.0" + "@types/ws" "^8.0.0" + graphql-ws "^5.14.0" + isomorphic-ws "^5.0.0" + tslib "^2.4.0" + ws "^8.17.1" + +"@graphql-tools/executor-http@^1.0.9": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-1.1.5.tgz#c47f9bac1168b5e87e3b313e9a64da1f47874868" + integrity sha512-ZAsVGUwafPc1GapLA1yoJuRx7ihpVdAv7JDHmlI2eHRQsJnMVQwcxHnjfUb/id9YAEBrP86/s4pgEoRyad3Zng== + dependencies: + "@graphql-tools/utils" "^10.3.2" + "@repeaterjs/repeater" "^3.0.4" + "@whatwg-node/fetch" "^0.9.0" + extract-files "^11.0.0" + meros "^1.2.1" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/executor-legacy-ws@^1.0.6": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.1.0.tgz#45358f48fc8c49825a8d1736f05df7c447db399f" + integrity sha512-k+6ZyiaAd8SmwuzbEOfA/LVkuI1nqidhoMw+CJ7c41QGOjSMzc0VS0UZbJyeitI0n7a+uP/Meln1wjzJ2ReDtQ== + dependencies: + "@graphql-tools/utils" "^10.3.0" + "@types/ws" "^8.0.0" + isomorphic-ws "^5.0.0" + tslib "^2.4.0" + ws "^8.17.1" + +"@graphql-tools/executor@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-1.3.1.tgz#69de74932442a84017c49639e23e0202e169db60" + integrity sha512-tgJDdGf9SCAm64ofEMZdv925u6/J+eTmv36TGNLxgP2DpCJsZ6gnJ4A+0D28EazDXqJIvMiPd+3d+o3cCRCAnQ== + dependencies: + "@graphql-tools/utils" "^10.3.4" + "@graphql-typed-document-node/core" "3.2.0" + "@repeaterjs/repeater" "^3.0.4" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/git-loader@^8.0.0": + version "8.0.7" + resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-8.0.7.tgz#cf046e54d8cdd4992a8f60d7af743ce852d96aeb" + integrity sha512-+s23lxHR24+zLDk9/Hfl7/8Qcal8Q1yJ8armRp1fvcJyuc0RTZv97ZoZb0tArTfME74z+kJ92Mx4SfZMd7mHSQ== + dependencies: + "@graphql-tools/graphql-tag-pluck" "8.3.2" + "@graphql-tools/utils" "^10.0.13" + is-glob "4.0.3" + micromatch "^4.0.4" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/github-loader@^8.0.0": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-8.0.1.tgz#011e1f9495d42a55139a12f576cc6bb04943ecf4" + integrity sha512-W4dFLQJ5GtKGltvh/u1apWRFKBQOsDzFxO9cJkOYZj1VzHCpRF43uLST4VbCfWve+AwBqOuKr7YgkHoxpRMkcg== + dependencies: + "@ardatan/sync-fetch" "^0.0.1" + "@graphql-tools/executor-http" "^1.0.9" + "@graphql-tools/graphql-tag-pluck" "^8.0.0" + "@graphql-tools/utils" "^10.0.13" + "@whatwg-node/fetch" "^0.9.0" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/graphql-file-loader@^8.0.0": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-8.0.1.tgz#03869b14cb91d0ef539df8195101279bb2df9c9e" + integrity sha512-7gswMqWBabTSmqbaNyWSmRRpStWlcCkBc73E6NZNlh4YNuiyKOwbvSkOUYFOqFMfEL+cFsXgAvr87Vz4XrYSbA== + dependencies: + "@graphql-tools/import" "7.0.1" + "@graphql-tools/utils" "^10.0.13" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/graphql-tag-pluck@8.3.2", "@graphql-tools/graphql-tag-pluck@^8.0.0": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-8.3.2.tgz#c97cc117e0179941da8eddf8a5655aff2244aa58" + integrity sha512-wJKkDjXRg2qJAVhAVE96zJGMli8Ity9mKUB7gTbvJwsAniaquRqLcTXUQ19X9qVT4ACzbbp+tAfk96b2U3tfog== + dependencies: + "@babel/core" "^7.22.9" + "@babel/parser" "^7.16.8" + "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" + "@graphql-tools/utils" "^10.0.13" + tslib "^2.4.0" + +"@graphql-tools/import@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-7.0.1.tgz#4e0d181c63350b1c926ae91b84a4cbaf03713c2c" + integrity sha512-935uAjAS8UAeXThqHfYVr4HEAp6nHJ2sximZKO1RzUTq5WoALMAhhGARl0+ecm6X+cqNUwIChJbjtaa6P/ML0w== + dependencies: + "@graphql-tools/utils" "^10.0.13" + resolve-from "5.0.0" + tslib "^2.4.0" + +"@graphql-tools/json-file-loader@^8.0.0": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-8.0.1.tgz#3fcfe869f22d8129a74369da69bf491c0bff7c2d" + integrity sha512-lAy2VqxDAHjVyqeJonCP6TUemrpYdDuKt25a10X6zY2Yn3iFYGnuIDQ64cv3ytyGY6KPyPB+Kp+ZfOkNDG3FQA== + dependencies: + "@graphql-tools/utils" "^10.0.13" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/load@^8.0.0": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-8.0.2.tgz#47d9916bf96dea05df27f11b53812f4327d9b6d2" + integrity sha512-S+E/cmyVmJ3CuCNfDuNF2EyovTwdWfQScXv/2gmvJOti2rGD8jTt9GYVzXaxhblLivQR9sBUCNZu/w7j7aXUCA== + dependencies: + "@graphql-tools/schema" "^10.0.3" + "@graphql-tools/utils" "^10.0.13" + p-limit "3.1.0" + tslib "^2.4.0" + +"@graphql-tools/merge@8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.1.tgz#06121942ad28982a14635dbc87b5d488a041d722" + integrity sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg== + dependencies: + "@graphql-tools/utils" "8.9.0" + tslib "^2.4.0" + +"@graphql-tools/merge@^8.4.1": + version "8.4.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.2.tgz#95778bbe26b635e8d2f60ce9856b388f11fe8288" + integrity sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw== + dependencies: + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + +"@graphql-tools/merge@^9.0.0", "@graphql-tools/merge@^9.0.1", "@graphql-tools/merge@^9.0.6": + version "9.0.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-9.0.6.tgz#06d3268a46f268b380665fd6a73da609c1854ca3" + integrity sha512-TmkzFTFVieHnqu9mPTF6RxAQltaprpDQnM5HMTPSyMLXnJGMTvdWejV0yORKj7DW1YSi791/sUnKf8HytepBFQ== + dependencies: + "@graphql-tools/utils" "^10.5.4" + tslib "^2.4.0" + +"@graphql-tools/mock@^8.1.2": + version "8.7.20" + resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.7.20.tgz#c83ae0f1940d194a3982120c9c85f3ac6b4f7f20" + integrity sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ== + dependencies: + "@graphql-tools/schema" "^9.0.18" + "@graphql-tools/utils" "^9.2.1" + fast-json-stable-stringify "^2.1.0" + tslib "^2.4.0" + +"@graphql-tools/optimize@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/optimize/-/optimize-2.0.0.tgz#7a9779d180824511248a50c5a241eff6e7a2d906" + integrity sha512-nhdT+CRGDZ+bk68ic+Jw1OZ99YCDIKYA5AlVAnBHJvMawSx9YQqQAIj4refNc1/LRieGiuWvhbG3jvPVYho0Dg== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/prisma-loader@^8.0.0": + version "8.0.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-8.0.4.tgz#542be5567b93f1b6147ef85819eb5874969486b2" + integrity sha512-hqKPlw8bOu/GRqtYr0+dINAI13HinTVYBDqhwGAPIFmLr5s+qKskzgCiwbsckdrb5LWVFmVZc+UXn80OGiyBzg== + dependencies: + "@graphql-tools/url-loader" "^8.0.2" + "@graphql-tools/utils" "^10.0.13" + "@types/js-yaml" "^4.0.0" + "@whatwg-node/fetch" "^0.9.0" + chalk "^4.1.0" + debug "^4.3.1" + dotenv "^16.0.0" + graphql-request "^6.0.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + jose "^5.0.0" + js-yaml "^4.0.0" + lodash "^4.17.20" + scuid "^1.1.0" + tslib "^2.4.0" + yaml-ast-parser "^0.0.43" + +"@graphql-tools/relay-operation-optimizer@^7.0.0": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-7.0.1.tgz#8ac33e1d2626b6816d9283769c4a05c062b8065a" + integrity sha512-y0ZrQ/iyqWZlsS/xrJfSir3TbVYJTYmMOu4TaSz6F4FRDTQ3ie43BlKkhf04rC28pnUOS4BO9pDcAo1D30l5+A== + dependencies: + "@ardatan/relay-compiler" "12.0.0" + "@graphql-tools/utils" "^10.0.13" + tslib "^2.4.0" + +"@graphql-tools/schema@^10.0.0", "@graphql-tools/schema@^10.0.2", "@graphql-tools/schema@^10.0.3", "@graphql-tools/schema@^10.0.4": + version "10.0.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-10.0.6.tgz#48391195ea4557ef5b6f77950bcbf529dc5f4e7e" + integrity sha512-EIJgPRGzpvDFEjVp+RF1zNNYIC36BYuIeZ514jFoJnI6IdxyVyIRDLx/ykgMdaa1pKQerpfdqDnsF4JnZoDHSQ== + dependencies: + "@graphql-tools/merge" "^9.0.6" + "@graphql-tools/utils" "^10.5.4" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/schema@^8.0.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.5.1.tgz#c2f2ff1448380919a330312399c9471db2580b58" + integrity sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg== + dependencies: + "@graphql-tools/merge" "8.3.1" + "@graphql-tools/utils" "8.9.0" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/schema@^9.0.18": + version "9.0.19" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.19.tgz#c4ad373b5e1b8a0cf365163435b7d236ebdd06e7" + integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w== + dependencies: + "@graphql-tools/merge" "^8.4.1" + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/url-loader@^8.0.0", "@graphql-tools/url-loader@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-8.0.2.tgz#ee8e10a85d82c72662f6bc6bbc7b408510a36ebd" + integrity sha512-1dKp2K8UuFn7DFo1qX5c1cyazQv2h2ICwA9esHblEqCYrgf69Nk8N7SODmsfWg94OEaI74IqMoM12t7eIGwFzQ== + dependencies: + "@ardatan/sync-fetch" "^0.0.1" + "@graphql-tools/delegate" "^10.0.4" + "@graphql-tools/executor-graphql-ws" "^1.1.2" + "@graphql-tools/executor-http" "^1.0.9" + "@graphql-tools/executor-legacy-ws" "^1.0.6" + "@graphql-tools/utils" "^10.0.13" + "@graphql-tools/wrap" "^10.0.2" + "@types/ws" "^8.0.0" + "@whatwg-node/fetch" "^0.9.0" + isomorphic-ws "^5.0.0" + tslib "^2.4.0" + value-or-promise "^1.0.11" + ws "^8.12.0" + +"@graphql-tools/utils@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.9.0.tgz#c6aa5f651c9c99e1aca55510af21b56ec296cdb7" + integrity sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/utils@^10.0.0", "@graphql-tools/utils@^10.0.11", "@graphql-tools/utils@^10.0.13", "@graphql-tools/utils@^10.1.1", "@graphql-tools/utils@^10.3.0", "@graphql-tools/utils@^10.3.2", "@graphql-tools/utils@^10.3.4", "@graphql-tools/utils@^10.5.4": + version "10.5.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.5.4.tgz#214d815632a774f2db56bcaf7cfbd615ef858078" + integrity sha512-XHnyCWSlg1ccsD8s0y6ugo5GZ5TpkTiFVNPSYms5G0s6Z/xTuSmiLBfeqgkfaCwLmLaQnRCmNDL2JRnqc2R5bQ== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + cross-inspect "1.0.1" + dset "^3.1.2" + tslib "^2.4.0" + +"@graphql-tools/utils@^9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57" + integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + tslib "^2.4.0" + +"@graphql-tools/wrap@^10.0.2": + version "10.0.5" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-10.0.5.tgz#614b964a158887b4a644f5425b2b9a57b5751f72" + integrity sha512-Cbr5aYjr3HkwdPvetZp1cpDWTGdD1Owgsb3z/ClzhmrboiK86EnQDxDvOJiQkDCPWE9lNBwj8Y4HfxroY0D9DQ== + dependencies: + "@graphql-tools/delegate" "^10.0.4" + "@graphql-tools/schema" "^10.0.3" + "@graphql-tools/utils" "^10.1.1" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-typed-document-node/core@3.2.0", "@graphql-typed-document-node/core@^3.1.1", "@graphql-typed-document-node/core@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== + +"@headlessui/react@^1.7.18": + version "1.7.19" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.19.tgz#91c78cf5fcb254f4a0ebe96936d48421caf75f40" + integrity sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw== + dependencies: + "@tanstack/react-virtual" "^3.0.0-beta.60" + client-only "^0.0.1" + +"@headlessui/tailwindcss@^0.2.0": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@headlessui/tailwindcss/-/tailwindcss-0.2.1.tgz#1becc201f69358a40e08bd676acc234b2cabe6e4" + integrity sha512-2+5+NZ+RzMyrVeCZOxdbvkUSssSxGvcUxphkIfSVLpRiKsj+/63T2TOL9dBYMXVfj/CGr6hMxSRInzXv6YY7sA== + +"@heroicons/react@^2.1.1": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-2.1.5.tgz#1e13f34976cc542deae92353c01c8b3d7942e9ba" + integrity sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA== + +"@humanwhocodes/config-array@^0.11.14": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@hutson/parse-repository-url@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" + integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== + +"@ioredis/commands@^1.1.1": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" + integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@isaacs/string-locale-compare@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" + integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== + +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@josephg/resolvable@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" + integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== + +"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@kamilkisiela/fast-url-parser@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@kamilkisiela/fast-url-parser/-/fast-url-parser-1.1.4.tgz#9d68877a489107411b953c54ea65d0658b515809" + integrity sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew== + +"@keyv/redis@~2.5.8": + version "2.5.8" + resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.5.8.tgz#6ba503b215f8ea66d194aa99457161e18ec046ec" + integrity sha512-WweuUZqZN2ETcseV6r1AEum1qG6eR5poNhkZ4CIpWBOjMasT2ArTKWyIPxxYllKUS2A8wKv1l8+AqH6Jpzk7Ug== + dependencies: + ioredis "^5.3.2" + +"@lerna/create@8.1.8": + version "8.1.8" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-8.1.8.tgz#be70d620f1d6b71e9d6b9d20049b784168b6ca19" + integrity sha512-wi72R01tgjBjzG2kjRyTHl4yCTKDfDMIXRyKz9E/FBa9SkFvUOAE4bdyY9MhEsRZmSWL7+CYE8Flv/HScRpBbA== + dependencies: + "@npmcli/arborist" "7.5.4" + "@npmcli/package-json" "5.2.0" + "@npmcli/run-script" "8.1.0" + "@nx/devkit" ">=17.1.2 < 20" + "@octokit/plugin-enterprise-rest" "6.0.1" + "@octokit/rest" "19.0.11" + aproba "2.0.0" + byte-size "8.1.1" + chalk "4.1.0" + clone-deep "4.0.1" + cmd-shim "6.0.3" + color-support "1.1.3" + columnify "1.6.0" + console-control-strings "^1.1.0" + conventional-changelog-core "5.0.1" + conventional-recommended-bump "7.0.1" + cosmiconfig "^8.2.0" + dedent "1.5.3" + execa "5.0.0" + fs-extra "^11.2.0" + get-stream "6.0.0" + git-url-parse "14.0.0" + glob-parent "6.0.2" + globby "11.1.0" + graceful-fs "4.2.11" + has-unicode "2.0.1" + ini "^1.3.8" + init-package-json "6.0.3" + inquirer "^8.2.4" + is-ci "3.0.1" + is-stream "2.0.0" + js-yaml "4.1.0" + libnpmpublish "9.0.9" + load-json-file "6.2.0" + lodash "^4.17.21" + make-dir "4.0.0" + minimatch "3.0.5" + multimatch "5.0.0" + node-fetch "2.6.7" + npm-package-arg "11.0.2" + npm-packlist "8.0.2" + npm-registry-fetch "^17.1.0" + nx ">=17.1.2 < 20" + p-map "4.0.0" + p-map-series "2.1.0" + p-queue "6.6.2" + p-reduce "^2.1.0" + pacote "^18.0.6" + pify "5.0.0" + read-cmd-shim "4.0.0" + resolve-from "5.0.0" + rimraf "^4.4.1" + semver "^7.3.4" + set-blocking "^2.0.0" + signal-exit "3.0.7" + slash "^3.0.0" + ssri "^10.0.6" + string-width "^4.2.3" + strip-ansi "^6.0.1" + strong-log-transformer "2.1.0" + tar "6.2.1" + temp-dir "1.0.0" + upath "2.0.1" + uuid "^10.0.0" + validate-npm-package-license "^3.0.4" + validate-npm-package-name "5.0.1" + wide-align "1.1.5" + write-file-atomic "5.0.1" + write-pkg "4.0.0" + yargs "17.7.2" + yargs-parser "21.1.1" + +"@metamask/object-multiplex@^1.1.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@metamask/object-multiplex/-/object-multiplex-1.3.0.tgz#459de4862aa5a5a025dabceadda0ffd553ca4b25" + integrity sha512-czcQeVYdSNtabd+NcYQnrM69MciiJyd1qvKH8WM2Id3C0ZiUUX5Xa/MK+/VUk633DBhVOwdNzAKIQ33lGyA+eQ== + dependencies: + end-of-stream "^1.4.4" + once "^1.4.0" + readable-stream "^2.3.3" + +"@metamask/providers@^11.1.1": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@metamask/providers/-/providers-11.1.2.tgz#6fb559699dd1806ca3524f35bd0a2286946624e4" + integrity sha512-xjE4cKrGpKZjripkMKMStc0H4LXrWJPijfbaj1kKeDLVhRH2Yu3ZecV3iIhf1EIJePeA+Kx6Pcm7d0IVJ+ea7g== + dependencies: + "@metamask/object-multiplex" "^1.1.0" + "@metamask/safe-event-emitter" "^3.0.0" + detect-browser "^5.2.0" + eth-rpc-errors "^4.0.2" + extension-port-stream "^2.1.1" + fast-deep-equal "^3.1.3" + is-stream "^2.0.0" + json-rpc-engine "^6.1.0" + json-rpc-middleware-stream "^4.2.1" + pump "^3.0.0" + webextension-polyfill "^0.10.0" + +"@metamask/safe-event-emitter@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" + integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== + +"@metamask/safe-event-emitter@^3.0.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.1.tgz#e89b840a7af8097a8ed4953d8dc8470d1302d3ef" + integrity sha512-ihb3B0T/wJm1eUuArYP4lCTSEoZsClHhuWyfo/kMX3m/odpqNcPfsz5O2A3NT7dXCAgWPGDQGPqygCpgeniKMw== + +"@metamask/types@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@metamask/types/-/types-1.1.0.tgz#9bd14b33427932833c50c9187298804a18c2e025" + integrity sha512-EEV/GjlYkOSfSPnYXfOosxa3TqYtIW3fhg6jdw+cok/OhMgNn4wCfbENFqjytrHMU2f7ZKtBAvtiP5V8H44sSw== + +"@napi-rs/wasm-runtime@0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz#d27788176f250d86e498081e3c5ff48a17606918" + integrity sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ== + dependencies: + "@emnapi/core" "^1.1.0" + "@emnapi/runtime" "^1.1.0" + "@tybys/wasm-util" "^0.9.0" + +"@next/env@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.5.tgz#1d9328ab828711d3517d0a1d505acb55e5ef7ad0" + integrity sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA== + +"@next/eslint-plugin-next@^14.1.3": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.5.tgz#f7e3ff3efe40a2855e5f29bc2692175f85913ba8" + integrity sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g== + dependencies: + glob "10.3.10" + +"@next/swc-darwin-arm64@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz#d0a160cf78c18731c51cc0bff131c706b3e9bb05" + integrity sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ== + +"@next/swc-darwin-x64@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz#eb832a992407f6e6352eed05a073379f1ce0589c" + integrity sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA== + +"@next/swc-linux-arm64-gnu@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz#098fdab57a4664969bc905f5801ef5a89582c689" + integrity sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA== + +"@next/swc-linux-arm64-musl@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz#243a1cc1087fb75481726dd289c7b219fa01f2b5" + integrity sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA== + +"@next/swc-linux-x64-gnu@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz#b8a2e436387ee4a52aa9719b718992e0330c4953" + integrity sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ== + +"@next/swc-linux-x64-musl@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz#cb8a9adad5fb8df86112cfbd363aab5c6d32757b" + integrity sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ== + +"@next/swc-win32-arm64-msvc@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz#81f996c1c38ea0900d4e7719cc8814be8a835da0" + integrity sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw== + +"@next/swc-win32-ia32-msvc@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz#f61c74ce823e10b2bc150e648fc192a7056422e0" + integrity sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg== + +"@next/swc-win32-x64-msvc@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz#ed199a920efb510cfe941cd75ed38a7be21e756f" + integrity sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g== + +"@next/third-parties@^14.2.3": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/third-parties/-/third-parties-14.2.5.tgz#7161d266547cabfb61b8af9721f83f8b5463a572" + integrity sha512-PDRJm8RZ3rnGNporHKjcdCeZqoW8iJ5uP0clo1Z08TqJiQzuntJ66zrGYCJyqTakx62UJNOp73YsQCFo6kbYYg== + dependencies: + third-party-capital "1.0.20" + +"@nivo/annotations@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/annotations/-/annotations-0.84.0.tgz#488b18599e494ec12be8fdcb270d9ae85b8a7b91" + integrity sha512-g3n+WaZgRza7fZVQZrrxq1cLS+6vmjhWGmQqEynFmKM2f11F7gdkHLhGMYosayjZ0Sb/bMUXvBSkUbyKli7NVw== + dependencies: + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@react-spring/web" "9.4.5 || ^9.7.2" + "@types/prop-types" "^15.7.2" + lodash "^4.17.21" + prop-types "^15.7.2" + +"@nivo/arcs@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/arcs/-/arcs-0.84.0.tgz#e080cdc7d09e4abaf7f74004f9cc5af69b80d22f" + integrity sha512-6i6CQmqdk7KZnaYmg8l0jqElQM19LJ/29WlxwVtDW43iQD0AqDzXb/eIwzZSZwf8sfGP8e8vvapkESlfkmzuPw== + dependencies: + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@react-spring/web" "9.4.5 || ^9.7.2" + "@types/d3-shape" "^2.0.0" + d3-shape "^1.3.5" + +"@nivo/axes@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/axes/-/axes-0.84.0.tgz#f3d288cfc3c6f77b86c557c350f1b63fe5be7b29" + integrity sha512-bC9Rx5ixGJiupTRXSnATIVRLPcx0HR8yXGBuO8GTy6K1DDnhaNWfhErnBLYbB9Sq13WQGrS2he6uvLVLd23CtA== + dependencies: + "@nivo/core" "0.84.0" + "@nivo/scales" "0.84.0" + "@react-spring/web" "9.4.5 || ^9.7.2" + "@types/d3-format" "^1.4.1" + "@types/d3-time-format" "^2.3.1" + "@types/prop-types" "^15.7.2" + d3-format "^1.4.4" + d3-time-format "^3.0.0" + prop-types "^15.7.2" + +"@nivo/colors@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/colors/-/colors-0.84.0.tgz#03fa4e8f8ad045a916ba210d78f125122c704beb" + integrity sha512-wNG1uYyDP5Owc1Pdkz0zesdZCrPAywmSssNzQ2Aju7nVs7Ru7iHNBIvOAGgyXTe2gcrIO9VSasXWR+jEYyxN2Q== + dependencies: + "@nivo/core" "0.84.0" + "@types/d3-color" "^2.0.0" + "@types/d3-scale" "^3.2.3" + "@types/d3-scale-chromatic" "^2.0.0" + "@types/prop-types" "^15.7.2" + d3-color "^3.1.0" + d3-scale "^3.2.3" + d3-scale-chromatic "^2.0.0" + lodash "^4.17.21" + prop-types "^15.7.2" + +"@nivo/core@0.84.0", "@nivo/core@^0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/core/-/core-0.84.0.tgz#2bde01f2bf590e37fe98adae8ba43766d9e78c4c" + integrity sha512-HyQM4x4B7d4X9+xLPKkPxqIxhSDzbJUywGTDWHWx1daeX9VP8O+MqkTBsNsoB+tjxrbKrRJ0+ceS2w89JB+qrA== + dependencies: + "@nivo/recompose" "0.84.0" + "@nivo/tooltip" "0.84.0" + "@react-spring/web" "9.4.5 || ^9.7.2" + "@types/d3-shape" "^2.0.0" + d3-color "^3.1.0" + d3-format "^1.4.4" + d3-interpolate "^3.0.1" + d3-scale "^3.2.3" + d3-scale-chromatic "^3.0.0" + d3-shape "^1.3.5" + d3-time-format "^3.0.0" + lodash "^4.17.21" + +"@nivo/legends@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/legends/-/legends-0.84.0.tgz#d89def3427aaa509721a9b6f38c813dd38401aff" + integrity sha512-o0s1cXoIH6Km9A2zoKB8Ey99Oc1w5nymz0j8s7hR2B0EHo5HgVbYjSs2sZD7NSwLt3QM57Nzxw9VzJ+sqfV30Q== + dependencies: + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@types/d3-scale" "^3.2.3" + "@types/prop-types" "^15.7.2" + d3-scale "^3.2.3" + prop-types "^15.7.2" + +"@nivo/line@^0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/line/-/line-0.84.0.tgz#dd5d7d230393fce19b59eb977edeef2151ee7438" + integrity sha512-QE0JwZ7oIwMnsDQeSr1Q6iyqD2UBVLtBMdfMsJLhnlI3V62VkY98/L3o8M7+7Wy/V2UiEMJ+14C2qhXd+XLgsA== + dependencies: + "@nivo/annotations" "0.84.0" + "@nivo/axes" "0.84.0" + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@nivo/legends" "0.84.0" + "@nivo/scales" "0.84.0" + "@nivo/tooltip" "0.84.0" + "@nivo/voronoi" "0.84.0" + "@react-spring/web" "9.4.5 || ^9.7.2" + d3-shape "^1.3.5" + prop-types "^15.7.2" + +"@nivo/pie@^0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/pie/-/pie-0.84.0.tgz#b295f8f8c6da8fd74460aed6e00de64e4d58a386" + integrity sha512-yM8oe162YlOKFZkpVhSF+9J/F3rhyUc+gS9M3M+HyVqzXM3xOKjZiqd5tckgFbvTixDK6FLsSBHzH2SRij/hDQ== + dependencies: + "@nivo/arcs" "0.84.0" + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@nivo/legends" "0.84.0" + "@nivo/tooltip" "0.84.0" + "@types/d3-shape" "^2.0.0" + d3-shape "^1.3.5" + +"@nivo/recompose@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/recompose/-/recompose-0.84.0.tgz#c65f8dcf5053d17c1cedfe88c248b3486305807f" + integrity sha512-Odb+r0pEmGt4RV020jwvngF7PxBgxS1e1sy8bWlZKc5qkm6k3eVlZNuYU+zGbDxHMigImvrx5KfUv5iUqtQBZA== + dependencies: + "@types/prop-types" "^15.7.2" + "@types/react-lifecycles-compat" "^3.0.1" + prop-types "^15.7.2" + react-lifecycles-compat "^3.0.4" + +"@nivo/scales@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/scales/-/scales-0.84.0.tgz#a066aaad24d14200bc3780575ef9be88a3b25014" + integrity sha512-Cayo9jFMpoF7Ha7eqOAucHLUG6zZLGpxiAtyZ/vTUCkRZPHmd/YMvrm8E6OyQCTBVf+aRtOKk9tQnMv8E9fWiw== + dependencies: + "@types/d3-scale" "^3.2.3" + "@types/d3-time" "^1.1.1" + "@types/d3-time-format" "^3.0.0" + d3-scale "^3.2.3" + d3-time "^1.0.11" + d3-time-format "^3.0.0" + lodash "^4.17.21" + +"@nivo/tooltip@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/tooltip/-/tooltip-0.84.0.tgz#f033798f1d09af5b2de7fa36ee91faa75543c5d8" + integrity sha512-x/6Vk4RXKHkG9q5dk4uFYwEfbMoIvJd5ahhVQ6bskuLks5FZoS6bkKoNggjxwmHbIWOVITGUXuykOfC54EWSpw== + dependencies: + "@nivo/core" "0.84.0" + "@react-spring/web" "9.4.5 || ^9.7.2" + +"@nivo/voronoi@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/voronoi/-/voronoi-0.84.0.tgz#c4e2ae2a968d7a5901fe69b75cc865f1c35b1333" + integrity sha512-CJTb0sQWYNbfjjrCEK3W0jt1v+hqAd4fDUNJxB3SNRHEEQtF+MCr2EG3p/CWyxIb3avjF4N53/03tQpnuDwBvQ== + dependencies: + "@nivo/core" "0.84.0" + "@types/d3-delaunay" "^5.3.0" + "@types/d3-scale" "^3.2.3" + d3-delaunay "^5.3.0" + d3-scale "^3.2.3" + +"@noble/curves@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + dependencies: + "@noble/hashes" "1.3.2" + +"@noble/curves@^1.3.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.5.0.tgz#7a9b9b507065d516e6dce275a1e31db8d2a100dd" + integrity sha512-J5EKamIHnKPyClwVrzmaf5wSdQXgdHcPZIZLu3bwnbeCx8/7NPK5q2ZBWF+5FvYGByjiQQsJYX6jfgB2wDPn3A== + dependencies: + "@noble/hashes" "1.4.0" + +"@noble/hashes@1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@noble/hashes@1.4.0", "@noble/hashes@^1.1.2", "@noble/hashes@^1.3.1", "@noble/hashes@^1.3.3": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/agent@^2.0.0": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.2.tgz#967604918e62f620a648c7975461c9c9e74fc5d5" + integrity sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og== + dependencies: + agent-base "^7.1.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.1" + lru-cache "^10.0.1" + socks-proxy-agent "^8.0.3" + +"@npmcli/arborist@7.5.4": + version "7.5.4" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-7.5.4.tgz#3dd9e531d6464ef6715e964c188e0880c471ac9b" + integrity sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g== + dependencies: + "@isaacs/string-locale-compare" "^1.1.0" + "@npmcli/fs" "^3.1.1" + "@npmcli/installed-package-contents" "^2.1.0" + "@npmcli/map-workspaces" "^3.0.2" + "@npmcli/metavuln-calculator" "^7.1.1" + "@npmcli/name-from-folder" "^2.0.0" + "@npmcli/node-gyp" "^3.0.0" + "@npmcli/package-json" "^5.1.0" + "@npmcli/query" "^3.1.0" + "@npmcli/redact" "^2.0.0" + "@npmcli/run-script" "^8.1.0" + bin-links "^4.0.4" + cacache "^18.0.3" + common-ancestor-path "^1.0.1" + hosted-git-info "^7.0.2" + json-parse-even-better-errors "^3.0.2" + json-stringify-nice "^1.1.4" + lru-cache "^10.2.2" + minimatch "^9.0.4" + nopt "^7.2.1" + npm-install-checks "^6.2.0" + npm-package-arg "^11.0.2" + npm-pick-manifest "^9.0.1" + npm-registry-fetch "^17.0.1" + pacote "^18.0.6" + parse-conflict-json "^3.0.0" + proc-log "^4.2.0" + proggy "^2.0.0" + promise-all-reject-late "^1.0.0" + promise-call-limit "^3.0.1" + read-package-json-fast "^3.0.2" + semver "^7.3.7" + ssri "^10.0.6" + treeverse "^3.0.0" + walk-up-path "^3.0.1" + +"@npmcli/fs@^3.1.0", "@npmcli/fs@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.1.tgz#59cdaa5adca95d135fc00f2bb53f5771575ce726" + integrity sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg== + dependencies: + semver "^7.3.5" + +"@npmcli/git@^5.0.0": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.8.tgz#8ba3ff8724192d9ccb2735a2aa5380a992c5d3d1" + integrity sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ== + dependencies: + "@npmcli/promise-spawn" "^7.0.0" + ini "^4.1.3" + lru-cache "^10.0.1" + npm-pick-manifest "^9.0.0" + proc-log "^4.0.0" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^4.0.0" + +"@npmcli/installed-package-contents@^2.0.1", "@npmcli/installed-package-contents@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz#63048e5f6e40947a3a88dcbcb4fd9b76fdd37c17" + integrity sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w== + dependencies: + npm-bundled "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +"@npmcli/map-workspaces@^3.0.2": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz#27dc06c20c35ef01e45a08909cab9cb3da08cea6" + integrity sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA== + dependencies: + "@npmcli/name-from-folder" "^2.0.0" + glob "^10.2.2" + minimatch "^9.0.0" + read-package-json-fast "^3.0.0" + +"@npmcli/metavuln-calculator@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.1.tgz#4d3b6c3192f72bc8ad59476de0da939c33877fcf" + integrity sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g== + dependencies: + cacache "^18.0.0" + json-parse-even-better-errors "^3.0.0" + pacote "^18.0.0" + proc-log "^4.1.0" + semver "^7.3.5" + +"@npmcli/name-from-folder@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815" + integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg== + +"@npmcli/node-gyp@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a" + integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA== + +"@npmcli/package-json@5.2.0", "@npmcli/package-json@^5.0.0", "@npmcli/package-json@^5.1.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.2.0.tgz#a1429d3111c10044c7efbfb0fce9f2c501f4cfad" + integrity sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ== + dependencies: + "@npmcli/git" "^5.0.0" + glob "^10.2.2" + hosted-git-info "^7.0.0" + json-parse-even-better-errors "^3.0.0" + normalize-package-data "^6.0.0" + proc-log "^4.0.0" + semver "^7.5.3" + +"@npmcli/promise-spawn@^7.0.0": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz#1d53d34ffeb5d151bfa8ec661bcccda8bbdfd532" + integrity sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ== + dependencies: + which "^4.0.0" + +"@npmcli/query@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.1.0.tgz#bc202c59e122a06cf8acab91c795edda2cdad42c" + integrity sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ== + dependencies: + postcss-selector-parser "^6.0.10" + +"@npmcli/redact@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/redact/-/redact-2.0.1.tgz#95432fd566e63b35c04494621767a4312c316762" + integrity sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw== + +"@npmcli/run-script@8.1.0", "@npmcli/run-script@^8.0.0", "@npmcli/run-script@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-8.1.0.tgz#a563e5e29b1ca4e648a6b1bbbfe7220b4bfe39fc" + integrity sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg== + dependencies: + "@npmcli/node-gyp" "^3.0.0" + "@npmcli/package-json" "^5.0.0" + "@npmcli/promise-spawn" "^7.0.0" + node-gyp "^10.0.0" + proc-log "^4.0.0" + which "^4.0.0" + +"@nrwl/devkit@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-19.6.1.tgz#8fd3d703088d97c32dc34eb1f13acefaf6bac69b" + integrity sha512-aoS5RwtUqd8gUWgubOtQ4kzqO8UVjYxtecutvSnDN6gKyG2ylZcDR2OnWL+AB7HbVgRjm/6/QALdcaev9Ljd8w== + dependencies: + "@nx/devkit" "19.6.1" + +"@nrwl/tao@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-19.6.1.tgz#a1082af4bbfcef652aff1105164f77eaa77abd81" + integrity sha512-nl/NcBRkHr5r0drCq9ROPcKx/Q7SioPvNMl7edo/PdjdKcmJ3gXqvgTxPjwbYH2/ScNX2yjm353qrNyffSs6Rw== + dependencies: + nx "19.6.1" + tslib "^2.3.0" + +"@nx/devkit@19.6.1", "@nx/devkit@>=17.1.2 < 20": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-19.6.1.tgz#f4f7ad5bca8f017b68809ad9c749cdaf756e7fba" + integrity sha512-FGfPM9R7QdEGllNr7Jlx81QbiufNNRHehrJ/4aqftzHWT5ptYmH45bPnd/Wu0qDK4rg1c4PMrjEOLpyCAFXg1Q== + dependencies: + "@nrwl/devkit" "19.6.1" + ejs "^3.1.7" + enquirer "~2.3.6" + ignore "^5.0.4" + minimatch "9.0.3" + semver "^7.5.3" + tmp "~0.2.1" + tslib "^2.3.0" + yargs-parser "21.1.1" + +"@nx/nx-darwin-arm64@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.6.1.tgz#d21bb4b19387a0aeb724c86d80f59127dbf900c8" + integrity sha512-xxAdyIUckvsIID0BnYCHM86s35n0tDsBYuoqpOFG+22PEk0bzoSVOyxeJQ5UKDCvXe5wa2MbcgyhbHKhj7Osnw== + +"@nx/nx-darwin-x64@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-19.6.1.tgz#cbc95ac98ca55dd9c0a522012c7b4a1cd2100483" + integrity sha512-ISwb09KKtAydrAbyxwOjce8pdVzOSuzC068Uo8TcHp2Xao2b+N9zmkQquLzC+G4dgwxDxxVYoZcuZ6urRFV7Cg== + +"@nx/nx-freebsd-x64@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.6.1.tgz#eada3946daf9d9aad2868636a90428b5ce3394a8" + integrity sha512-IzR+K0tW8A6kl95V6k8Pp8tknjiDGOUB+E2p8YN7UlYPP7gaBK+rojERF4V7jD5pEvSxrKMwuJoD+WH/b52TNA== + +"@nx/nx-linux-arm-gnueabihf@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.6.1.tgz#49ebe76eb63b025238309a915af0822e82f37552" + integrity sha512-8mHceXwpBIp1gF+hSKGg7XRYpcB9QN8YROSn4dzvDoUMEusOE27jzXKKS9dRkjdULYENKDkv0NbuhcoxoWx+KA== + +"@nx/nx-linux-arm64-gnu@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.6.1.tgz#24c95a34490face531736f97da3cbf7c3cc89988" + integrity sha512-eqxWqhUrFEz3Rnoz9RKhMlrCY6AF0AVGgTGto5TdB16kIgTA53i18bf9jaq2MSBZQHE1kySVUgPfxQQxPzWKaA== + +"@nx/nx-linux-arm64-musl@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.6.1.tgz#502ee375bb01b0f5fcd9e6c921c0c43679320886" + integrity sha512-3lfazErzsJgO8G2dEcuGmtJoi9fQ3CPvLA+RiE7CKBQ4a/5Zb1o2rqlZ1YTfnfiUcOh4knt7gWcXm16eSKbLoQ== + +"@nx/nx-linux-x64-gnu@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.6.1.tgz#066dab4382b05eee56c7c1ebbf249fe4077f363e" + integrity sha512-Rt4NkuJZpRyVunRoCC5shaUqPk6wrMH3x55WEb0HBzlKjkItgrFpPInPS4hp9hFsJ8vX2AkBX2qrTWRaLMbOyQ== + +"@nx/nx-linux-x64-musl@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.6.1.tgz#858b1d5c1ed756e32bff3d0505ce2f263ca8dff5" + integrity sha512-P0RnxCfcgb6t4l+WWVNlTDzqpcM/Du77EfgvNc3Z1mRLQMP4E5TkLt8J/aTTjh2GwtnP95oxQSOYBzg+sJwNPQ== + +"@nx/nx-win32-arm64-msvc@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.6.1.tgz#5a3b372cd9a95eb57e96797a24fb2b6c3da15a29" + integrity sha512-CFaRqK+Sv7Gi7d+WUJqFLV0t4D2ImnO7BoeZWnT6oEfIl94hikCtbu4693Fsu7eg37JMa+4xwdAUvOOq1rFhJg== + +"@nx/nx-win32-x64-msvc@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.6.1.tgz#ad9cd32c13eed36e50063522773ce3b7b7e6bbfb" + integrity sha512-l2vAK0/2c9oEAqI0KdeJkkkZlr72LeWV5zds/FIuFHBRyweJanplRelhD7t199BnGr2FfulOpFrc1TyYzvntkg== + +"@octokit/auth-token@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db" + integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ== + +"@octokit/core@^4.2.1": + version "4.2.4" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907" + integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== + dependencies: + "@octokit/auth-token" "^3.0.0" + "@octokit/graphql" "^5.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^7.0.0": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2" + integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg== + dependencies: + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^5.0.0": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.6.tgz#9eac411ac4353ccc5d3fca7d76736e6888c5d248" + integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw== + dependencies: + "@octokit/request" "^6.0.0" + "@octokit/types" "^9.0.0" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^18.0.0": + version "18.1.1" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.1.1.tgz#09bdfdabfd8e16d16324326da5148010d765f009" + integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw== + +"@octokit/plugin-enterprise-rest@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" + integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== + +"@octokit/plugin-paginate-rest@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz#f86456a7a1fe9e58fec6385a85cf1b34072341f8" + integrity sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ== + dependencies: + "@octokit/tsconfig" "^1.0.2" + "@octokit/types" "^9.2.3" + +"@octokit/plugin-request-log@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@^7.1.2": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz#37a84b171a6cb6658816c82c4082ac3512021797" + integrity sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA== + dependencies: + "@octokit/types" "^10.0.0" + +"@octokit/request-error@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69" + integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== + dependencies: + "@octokit/types" "^9.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^6.0.0": + version "6.2.8" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb" + integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw== + dependencies: + "@octokit/endpoint" "^7.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" + +"@octokit/rest@19.0.11": + version "19.0.11" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.11.tgz#2ae01634fed4bd1fca5b642767205ed3fd36177c" + integrity sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw== + dependencies: + "@octokit/core" "^4.2.1" + "@octokit/plugin-paginate-rest" "^6.1.2" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^7.1.2" + +"@octokit/tsconfig@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@octokit/tsconfig/-/tsconfig-1.0.2.tgz#59b024d6f3c0ed82f00d08ead5b3750469125af7" + integrity sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA== + +"@octokit/types@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-10.0.0.tgz#7ee19c464ea4ada306c43f1a45d444000f419a4a" + integrity sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg== + dependencies: + "@octokit/openapi-types" "^18.0.0" + +"@octokit/types@^9.0.0", "@octokit/types@^9.2.3": + version "9.3.2" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5" + integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== + dependencies: + "@octokit/openapi-types" "^18.0.0" + +"@panva/hkdf@^1.0.2": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@panva/hkdf/-/hkdf-1.2.1.tgz#cb0d111ef700136f4580349ff0226bf25c853f23" + integrity sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw== + +"@parcel/watcher-android-arm64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz#c2c19a3c442313ff007d2d7a9c2c1dd3e1c9ca84" + integrity sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg== + +"@parcel/watcher-darwin-arm64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz#c817c7a3b4f3a79c1535bfe54a1c2818d9ffdc34" + integrity sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA== + +"@parcel/watcher-darwin-x64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz#1a3f69d9323eae4f1c61a5f480a59c478d2cb020" + integrity sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg== + +"@parcel/watcher-freebsd-x64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz#0d67fef1609f90ba6a8a662bc76a55fc93706fc8" + integrity sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w== + +"@parcel/watcher-linux-arm-glibc@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz#ce5b340da5829b8e546bd00f752ae5292e1c702d" + integrity sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA== + +"@parcel/watcher-linux-arm64-glibc@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz#6d7c00dde6d40608f9554e73998db11b2b1ff7c7" + integrity sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA== + +"@parcel/watcher-linux-arm64-musl@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz#bd39bc71015f08a4a31a47cd89c236b9d6a7f635" + integrity sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA== + +"@parcel/watcher-linux-x64-glibc@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz#0ce29966b082fb6cdd3de44f2f74057eef2c9e39" + integrity sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg== + +"@parcel/watcher-linux-x64-musl@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz#d2ebbf60e407170bb647cd6e447f4f2bab19ad16" + integrity sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ== + +"@parcel/watcher-win32-arm64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz#eb4deef37e80f0b5e2f215dd6d7a6d40a85f8adc" + integrity sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg== + +"@parcel/watcher-win32-ia32@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz#94fbd4b497be39fd5c8c71ba05436927842c9df7" + integrity sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw== + +"@parcel/watcher-win32-x64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz#4bf920912f67cae5f2d264f58df81abfea68dadf" + integrity sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A== + +"@parcel/watcher@^2.1.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.4.1.tgz#a50275151a1bb110879c6123589dba90c19f1bf8" + integrity sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA== + dependencies: + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.4.1" + "@parcel/watcher-darwin-arm64" "2.4.1" + "@parcel/watcher-darwin-x64" "2.4.1" + "@parcel/watcher-freebsd-x64" "2.4.1" + "@parcel/watcher-linux-arm-glibc" "2.4.1" + "@parcel/watcher-linux-arm64-glibc" "2.4.1" + "@parcel/watcher-linux-arm64-musl" "2.4.1" + "@parcel/watcher-linux-x64-glibc" "2.4.1" + "@parcel/watcher-linux-x64-musl" "2.4.1" + "@parcel/watcher-win32-arm64" "2.4.1" + "@parcel/watcher-win32-ia32" "2.4.1" + "@parcel/watcher-win32-x64" "2.4.1" + +"@peculiar/asn1-schema@^2.3.8": + version "2.3.13" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.13.tgz#ec8509cdcbc0da3abe73fd7e690556b57a61b8f4" + integrity sha512-3Xq3a01WkHRZL8X04Zsfg//mGaA21xlL4tlVn4v2xGT0JStiztATRkMwa5b+f/HXmY2smsiLXYK46Gwgzvfg3g== + dependencies: + asn1js "^3.0.5" + pvtsutils "^1.3.5" + tslib "^2.6.2" + +"@peculiar/json-schema@^1.1.12": + version "1.1.12" + resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" + integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== + dependencies: + tslib "^2.0.0" + +"@peculiar/webcrypto@^1.4.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.5.0.tgz#9e57174c02c1291051c553600347e12b81469e10" + integrity sha512-BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg== + dependencies: + "@peculiar/asn1-schema" "^2.3.8" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.3.5" + tslib "^2.6.2" + webcrypto-core "^1.8.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== + +"@polkadot-api/client@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/client/-/client-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#5d6b863f63f5c6ecd4183fcf0c5c84dd349f7627" + integrity sha512-0fqK6pUKcGHSG2pBvY+gfSS+1mMdjd/qRygAcKI5d05tKsnZLRnmhb9laDguKmGEIB0Bz9vQqNK3gIN/cfvVwg== + dependencies: + "@polkadot-api/metadata-builders" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/substrate-bindings" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/substrate-client" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/utils" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + +"@polkadot-api/json-rpc-provider-proxy@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1.tgz#bb5c943642cdf0ec7bc48c0a2647558b9fcd7bdb" + integrity sha512-gmVDUP8LpCH0BXewbzqXF2sdHddq1H1q+XrAW2of+KZj4woQkIGBRGTJHeBEVHe30EB+UejR1N2dT4PO/RvDdg== + +"@polkadot-api/json-rpc-provider-proxy@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#cc28fb801db6a47824261a709ab924ec6951eb96" + integrity sha512-0hZ8vtjcsyCX8AyqP2sqUHa1TFFfxGWmlXJkit0Nqp9b32MwZqn5eaUAiV2rNuEpoglKOdKnkGtUF8t5MoodKw== + +"@polkadot-api/json-rpc-provider@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1.tgz#333645d40ccd9bccfd1f32503f17e4e63e76e297" + integrity sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA== + +"@polkadot-api/json-rpc-provider@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#2f71bfb192d28dd4c400ef8b1c5f934c676950f3" + integrity sha512-EaUS9Fc3wsiUr6ZS43PQqaRScW7kM6DYbuM/ou0aYjm8N9MBqgDbGm2oL6RE1vAVmOfEuHcXZuZkhzWtyvQUtA== + +"@polkadot-api/metadata-builders@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1.tgz#a76b48febef9ea72be8273d889e2677101045a05" + integrity sha512-GCI78BHDzXAF/L2pZD6Aod/yl82adqQ7ftNmKg51ixRL02JpWUA+SpUKTJE5MY1p8kiJJIo09P2um24SiJHxNA== + dependencies: + "@polkadot-api/substrate-bindings" "0.0.1" + "@polkadot-api/utils" "0.0.1" + +"@polkadot-api/metadata-builders@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#085db2a3c7b100626b2fae3be35a32a24ea7714f" + integrity sha512-BD7rruxChL1VXt0icC2gD45OtT9ofJlql0qIllHSRYgama1CR2Owt+ApInQxB+lWqM+xNOznZRpj8CXNDvKIMg== + dependencies: + "@polkadot-api/substrate-bindings" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/utils" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + +"@polkadot-api/observable-client@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/observable-client/-/observable-client-0.1.0.tgz#472045ea06a2bc4bccdc2db5c063eadcbf6f5351" + integrity sha512-GBCGDRztKorTLna/unjl/9SWZcRmvV58o9jwU2Y038VuPXZcr01jcw/1O3x+yeAuwyGzbucI/mLTDa1QoEml3A== + dependencies: + "@polkadot-api/metadata-builders" "0.0.1" + "@polkadot-api/substrate-bindings" "0.0.1" + "@polkadot-api/substrate-client" "0.0.1" + "@polkadot-api/utils" "0.0.1" + +"@polkadot-api/substrate-bindings@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1.tgz#c4b7f4d6c3672d2c15cbc6c02964f014b73cbb0b" + integrity sha512-bAe7a5bOPnuFVmpv7y4BBMRpNTnMmE0jtTqRUw/+D8ZlEHNVEJQGr4wu3QQCl7k1GnSV1wfv3mzIbYjErEBocg== + dependencies: + "@noble/hashes" "^1.3.1" + "@polkadot-api/utils" "0.0.1" + "@scure/base" "^1.1.1" + scale-ts "^1.6.0" + +"@polkadot-api/substrate-bindings@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#f836a554a9ead6fb6356079c725cd53f87238932" + integrity sha512-N4vdrZopbsw8k57uG58ofO7nLXM4Ai7835XqakN27MkjXMp5H830A1KJE0L9sGQR7ukOCDEIHHcwXVrzmJ/PBg== + dependencies: + "@noble/hashes" "^1.3.1" + "@polkadot-api/utils" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@scure/base" "^1.1.1" + scale-ts "^1.6.0" + +"@polkadot-api/substrate-client@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-client/-/substrate-client-0.0.1.tgz#0e8010a0abe2fb47d6fa7ab94e45e1d0de083314" + integrity sha512-9Bg9SGc3AwE+wXONQoW8GC00N3v6lCZLW74HQzqB6ROdcm5VAHM4CB/xRzWSUF9CXL78ugiwtHx3wBcpx4H4Wg== + +"@polkadot-api/substrate-client@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-client/-/substrate-client-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#55ae463f4143495e328465dd16b03e71663ef4c4" + integrity sha512-lcdvd2ssUmB1CPzF8s2dnNOqbrDa+nxaaGbuts+Vo8yjgSKwds2Lo7Oq+imZN4VKW7t9+uaVcKFLMF7PdH0RWw== + +"@polkadot-api/utils@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/utils/-/utils-0.0.1.tgz#908b22becac705149d7cc946532143d0fb003bfc" + integrity sha512-3j+pRmlF9SgiYDabSdZsBSsN5XHbpXOAce1lWj56IEEaFZVjsiCaxDOA7C9nCcgfVXuvnbxqqEGQvnY+QfBAUw== + +"@polkadot-api/utils@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/utils/-/utils-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#759698dcf948745ea37cc5ab6abd49a00f1b0c31" + integrity sha512-0CYaCjfLQJTCRCiYvZ81OncHXEKPzAexCMoVloR+v2nl/O2JRya/361MtPkeNLC6XBoaEgLAG9pWQpH3WePzsw== + +"@polkadot/api-augment@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-10.13.1.tgz#dd3670a2f1a581c38b857ad3b0805b6581099c63" + integrity sha512-IAKaCp19QxgOG4HKk9RAgUgC/VNVqymZ2GXfMNOZWImZhxRIbrK+raH5vN2MbWwtVHpjxyXvGsd1RRhnohI33A== + dependencies: + "@polkadot/api-base" "10.13.1" + "@polkadot/rpc-augment" "10.13.1" + "@polkadot/types" "10.13.1" + "@polkadot/types-augment" "10.13.1" + "@polkadot/types-codec" "10.13.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/api-augment@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-11.3.1.tgz#c7deeac438b017613e244c25505216a9d4c3977e" + integrity sha512-Yj+6rb6h0WwY3yJ+UGhjGW+tyMRFUMsKQuGw+eFsXdjiNU9UoXsAqA2dG7Q1F+oeX/g+y2gLGBezNoCwbl6HfA== + dependencies: + "@polkadot/api-base" "11.3.1" + "@polkadot/rpc-augment" "11.3.1" + "@polkadot/types" "11.3.1" + "@polkadot/types-augment" "11.3.1" + "@polkadot/types-codec" "11.3.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/api-base@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-10.13.1.tgz#efed5bb31e38244b6a68ce56138b97ad82101426" + integrity sha512-Okrw5hjtEjqSMOG08J6qqEwlUQujTVClvY1/eZkzKwNzPelWrtV6vqfyJklB7zVhenlxfxqhZKKcY7zWSW/q5Q== + dependencies: + "@polkadot/rpc-core" "10.13.1" + "@polkadot/types" "10.13.1" + "@polkadot/util" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/api-base@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-11.3.1.tgz#6c74c88d4a4b3d22344bb8715a135493f5a3dd33" + integrity sha512-b8UkNL00NN7+3QaLCwL5cKg+7YchHoKCAhwKusWHNBZkkO6Oo2BWilu0dZkPJOyqV9P389Kbd9+oH+SKs9u2VQ== + dependencies: + "@polkadot/rpc-core" "11.3.1" + "@polkadot/types" "11.3.1" + "@polkadot/util" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/api-derive@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-10.13.1.tgz#d8827ee83124f3b3f664c415cdde9c6b909e5145" + integrity sha512-ef0H0GeCZ4q5Om+c61eLLLL29UxFC2/u/k8V1K2JOIU+2wD5LF7sjAoV09CBMKKHfkLenRckVk2ukm4rBqFRpg== + dependencies: + "@polkadot/api" "10.13.1" + "@polkadot/api-augment" "10.13.1" + "@polkadot/api-base" "10.13.1" + "@polkadot/rpc-core" "10.13.1" + "@polkadot/types" "10.13.1" + "@polkadot/types-codec" "10.13.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/api-derive@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-11.3.1.tgz#3617655b6dab56d5beb8efbf7383ab457370df35" + integrity sha512-9dopzrh4cRuft1nANmBvMY/hEhFDu0VICMTOGxQLOl8NMfcOFPTLAN0JhSBUoicGZhV+c4vpv01NBx/7/IL1HA== + dependencies: + "@polkadot/api" "11.3.1" + "@polkadot/api-augment" "11.3.1" + "@polkadot/api-base" "11.3.1" + "@polkadot/rpc-core" "11.3.1" + "@polkadot/types" "11.3.1" + "@polkadot/types-codec" "11.3.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/api@10.13.1", "@polkadot/api@^10.12.4": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-10.13.1.tgz#47586c070d3fe13a0acc93a8aa9c3a53791284fb" + integrity sha512-YrKWR4TQR5CDyGkF0mloEUo7OsUA+bdtENpJGOtNavzOQUDEbxFE0PVzokzZfVfHhHX2CojPVmtzmmLxztyJkg== + dependencies: + "@polkadot/api-augment" "10.13.1" + "@polkadot/api-base" "10.13.1" + "@polkadot/api-derive" "10.13.1" + "@polkadot/keyring" "^12.6.2" + "@polkadot/rpc-augment" "10.13.1" + "@polkadot/rpc-core" "10.13.1" + "@polkadot/rpc-provider" "10.13.1" + "@polkadot/types" "10.13.1" + "@polkadot/types-augment" "10.13.1" + "@polkadot/types-codec" "10.13.1" + "@polkadot/types-create" "10.13.1" + "@polkadot/types-known" "10.13.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + eventemitter3 "^5.0.1" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/api@11.3.1", "@polkadot/api@^11.2.1", "@polkadot/api@^11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-11.3.1.tgz#6092aea8147ea03873b3f383cceae0390a67f71d" + integrity sha512-q4kFIIHTLvKxM24b0Eo8hJevsPMme+aITJGrDML9BgdZYTRN14+cu5nXiCsQvaEamdyYj+uCXWe2OV9X7pPxsA== + dependencies: + "@polkadot/api-augment" "11.3.1" + "@polkadot/api-base" "11.3.1" + "@polkadot/api-derive" "11.3.1" + "@polkadot/keyring" "^12.6.2" + "@polkadot/rpc-augment" "11.3.1" + "@polkadot/rpc-core" "11.3.1" + "@polkadot/rpc-provider" "11.3.1" + "@polkadot/types" "11.3.1" + "@polkadot/types-augment" "11.3.1" + "@polkadot/types-codec" "11.3.1" + "@polkadot/types-create" "11.3.1" + "@polkadot/types-known" "11.3.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + eventemitter3 "^5.0.1" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/extension-dapp@^0.46.5", "@polkadot/extension-dapp@^0.46.7": + version "0.46.9" + resolved "https://registry.yarnpkg.com/@polkadot/extension-dapp/-/extension-dapp-0.46.9.tgz#b80231a2dd04744d8bdfff41bcb7223316f353e2" + integrity sha512-y5udSeQ/X9MEoyjlpTcCn0UAEjZ2jjy6U3V/jiVFQo5vBKhdqAhN1oN8X5c4yWurmhYM/7oibImxAjEoXuwH+Q== + dependencies: + "@polkadot/extension-inject" "0.46.9" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/extension-dapp@^0.47.5": + version "0.47.6" + resolved "https://registry.yarnpkg.com/@polkadot/extension-dapp/-/extension-dapp-0.47.6.tgz#0ab43d95cb6ad7b007510259e2a94186b49baff7" + integrity sha512-GpV0MQGL5c4y5lVcQXP+tf6Nnyqau/9ZHQnQdsWosnrjR0n9iak8UgWl1hQEGqBp/nYi9TdvdA4uFvcIjv1Jng== + dependencies: + "@polkadot/extension-inject" "0.47.6" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/extension-inject@0.46.9", "@polkadot/extension-inject@^0.46.5", "@polkadot/extension-inject@^0.46.7": + version "0.46.9" + resolved "https://registry.yarnpkg.com/@polkadot/extension-inject/-/extension-inject-0.46.9.tgz#d4a8dbe27b2fda945d6410d0e22f6110a6befae1" + integrity sha512-m0jnrs9+jEOpMH6OUNl7nHpz9SFFWK9LzuqB8T3htEE3RUYPL//SLCPyEKxAAgHu7F8dgkUHssAWQfANofALCQ== + dependencies: + "@polkadot/api" "^10.12.4" + "@polkadot/rpc-provider" "^10.12.4" + "@polkadot/types" "^10.12.4" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + "@polkadot/x-global" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/extension-inject@0.47.6": + version "0.47.6" + resolved "https://registry.yarnpkg.com/@polkadot/extension-inject/-/extension-inject-0.47.6.tgz#a729d00215dd90d8ba77f6103018563ca187e060" + integrity sha512-rDTHyjGBgNochLc5Us+H2YJXUb2HW4hJJ23+6B7Mv373mfBYtM1T1HDkIWzV/xNJmiboAQy4O41N71CmZq4j7g== + dependencies: + "@polkadot/api" "^11.3.1" + "@polkadot/rpc-provider" "^11.3.1" + "@polkadot/types" "^11.3.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + "@polkadot/x-global" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/keyring@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-12.6.2.tgz#6067e6294fee23728b008ac116e7e9db05cecb9b" + integrity sha512-O3Q7GVmRYm8q7HuB3S0+Yf/q/EB2egKRRU3fv9b3B7V+A52tKzA+vIwEmNVaD1g5FKW9oB97rmpggs0zaKFqHw== + dependencies: + "@polkadot/util" "12.6.2" + "@polkadot/util-crypto" "12.6.2" + tslib "^2.6.2" + +"@polkadot/keyring@^13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-13.0.2.tgz#05a655eb06c965ae5ee5f181d25916797ea50849" + integrity sha512-NeLbhyKDT5W8LI9seWTZGePxNTOVpDhv2018HSrEDwJq9Ie0C4TZhUf3KNERCkSveuThXjfQJMs+1CF33ZXPWw== + dependencies: + "@polkadot/util" "13.0.2" + "@polkadot/util-crypto" "13.0.2" + tslib "^2.6.2" + +"@polkadot/networks@12.6.2", "@polkadot/networks@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-12.6.2.tgz#791779fee1d86cc5b6cd371858eea9b7c3f8720d" + integrity sha512-1oWtZm1IvPWqvMrldVH6NI2gBoCndl5GEwx7lAuQWGr7eNL+6Bdc5K3Z9T0MzFvDGoi2/CBqjX9dRKo39pDC/w== + dependencies: + "@polkadot/util" "12.6.2" + "@substrate/ss58-registry" "^1.44.0" + tslib "^2.6.2" + +"@polkadot/networks@13.0.2", "@polkadot/networks@^13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-13.0.2.tgz#0f8fc896b8fb2141212b6448739f4a00bc72b29c" + integrity sha512-ABAL+vug/gIwkdFEzeh87JoJd0YKrxSYg/HjUrZ+Zis2ucxQEKpvtCpJ34ku+YrjacBfVqIAkkwd3ZdIPGq9aQ== + dependencies: + "@polkadot/util" "13.0.2" + "@substrate/ss58-registry" "^1.46.0" + tslib "^2.6.2" + +"@polkadot/react-identicon@^3.6.5": + version "3.9.1" + resolved "https://registry.yarnpkg.com/@polkadot/react-identicon/-/react-identicon-3.9.1.tgz#434e595ec50cdbef2b3cd50deebc32faa40291d4" + integrity sha512-4cMGPNc3KZdaEqZbrhfvuwPg4jXT29hIadBjKVbyQZAuJzwzcIiFpr9JvQ8fLHE1elFr5dbQqGsHB/iZRyzhyw== + dependencies: + "@polkadot/keyring" "^13.0.2" + "@polkadot/ui-settings" "3.9.1" + "@polkadot/ui-shared" "3.9.1" + "@polkadot/util" "^13.0.2" + "@polkadot/util-crypto" "^13.0.2" + ethereum-blockies-base64 "^1.0.2" + jdenticon "3.2.0" + react-copy-to-clipboard "^5.1.0" + styled-components "^6.1.1" + tslib "^2.6.2" + +"@polkadot/rpc-augment@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-10.13.1.tgz#83317b46c5ab86104cca2bdc336199db0c25b798" + integrity sha512-iLsWUW4Jcx3DOdVrSHtN0biwxlHuTs4QN2hjJV0gd0jo7W08SXhWabZIf9mDmvUJIbR7Vk+9amzvegjRyIf5+A== + dependencies: + "@polkadot/rpc-core" "10.13.1" + "@polkadot/types" "10.13.1" + "@polkadot/types-codec" "10.13.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/rpc-augment@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-11.3.1.tgz#b589ef5b7ab578cf274077604543071ce9889301" + integrity sha512-2PaDcKNju4QYQpxwVkWbRU3M0t340nMX9cMo+8awgvgL1LliV/fUDZueMKLuSS910JJMTPQ7y2pK4eQgMt08gQ== + dependencies: + "@polkadot/rpc-core" "11.3.1" + "@polkadot/types" "11.3.1" + "@polkadot/types-codec" "11.3.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/rpc-core@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-10.13.1.tgz#a7ea9db8997b68aa6724f28ba76125a73e925575" + integrity sha512-eoejSHa+/tzHm0vwic62/aptTGbph8vaBpbvLIK7gd00+rT813ROz5ckB1CqQBFB23nHRLuzzX/toY8ID3xrKw== + dependencies: + "@polkadot/rpc-augment" "10.13.1" + "@polkadot/rpc-provider" "10.13.1" + "@polkadot/types" "10.13.1" + "@polkadot/util" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/rpc-core@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-11.3.1.tgz#c23e23ee5c403c4edb207d603ae4dc16e69bc710" + integrity sha512-KKNepsDd/mpmXcA6v/h14eFFPEzLGd7nrvx2UUXUxoZ0Fq2MH1hplP3s93k1oduNY/vOXJR2K9S4dKManA6GVQ== + dependencies: + "@polkadot/rpc-augment" "11.3.1" + "@polkadot/rpc-provider" "11.3.1" + "@polkadot/types" "11.3.1" + "@polkadot/util" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/rpc-provider@10.13.1", "@polkadot/rpc-provider@^10.12.4": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-10.13.1.tgz#7e17f7be7d9a104b797d8f5aa8f1ed69f800f841" + integrity sha512-oJ7tatVXYJ0L7NpNiGd69D558HG5y5ZDmH2Bp9Dd4kFTQIiV8A39SlWwWUPCjSsen9lqSvvprNLnG/VHTpenbw== + dependencies: + "@polkadot/keyring" "^12.6.2" + "@polkadot/types" "10.13.1" + "@polkadot/types-support" "10.13.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + "@polkadot/x-fetch" "^12.6.2" + "@polkadot/x-global" "^12.6.2" + "@polkadot/x-ws" "^12.6.2" + eventemitter3 "^5.0.1" + mock-socket "^9.3.1" + nock "^13.5.0" + tslib "^2.6.2" + optionalDependencies: + "@substrate/connect" "0.8.8" + +"@polkadot/rpc-provider@11.3.1", "@polkadot/rpc-provider@^11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-11.3.1.tgz#1d1289bf42d065b5f04f9baa46ef90d96940819e" + integrity sha512-pqERChoHo45hd3WAgW8UuzarRF+G/o/eXEbl0PXLubiayw4X4qCmIzmtntUcKYgxGNcYGZaG87ZU8OjN97m6UA== + dependencies: + "@polkadot/keyring" "^12.6.2" + "@polkadot/types" "11.3.1" + "@polkadot/types-support" "11.3.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + "@polkadot/x-fetch" "^12.6.2" + "@polkadot/x-global" "^12.6.2" + "@polkadot/x-ws" "^12.6.2" + eventemitter3 "^5.0.1" + mock-socket "^9.3.1" + nock "^13.5.0" + tslib "^2.6.2" + optionalDependencies: + "@substrate/connect" "0.8.10" + +"@polkadot/types-augment@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-10.13.1.tgz#8f39a46a1a3e100be03cbae06f43a043cb25c337" + integrity sha512-TcrLhf95FNFin61qmVgOgayzQB/RqVsSg9thAso1Fh6pX4HSbvI35aGPBAn3SkA6R+9/TmtECirpSNLtIGFn0g== + dependencies: + "@polkadot/types" "10.13.1" + "@polkadot/types-codec" "10.13.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-augment@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-11.3.1.tgz#1f7f553f0ca6eb8fbc0306901edc045fe18729e1" + integrity sha512-eR3HVpvUmB3v7q2jTWVmVfAVfb1/kuNn7ij94Zqadg/fuUq0pKqIOKwkUj3OxRM3A/5BnW3MbgparjKD3r+fyw== + dependencies: + "@polkadot/types" "11.3.1" + "@polkadot/types-codec" "11.3.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-codec@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-10.13.1.tgz#f70cd617160b467685ef3ce5195a04142255ba7b" + integrity sha512-AiQ2Vv2lbZVxEdRCN8XSERiWlOWa2cTDLnpAId78EnCtx4HLKYQSd+Jk9Y4BgO35R79mchK4iG+w6gZ+ukG2bg== + dependencies: + "@polkadot/util" "^12.6.2" + "@polkadot/x-bigint" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-codec@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-11.3.1.tgz#2767cf482cd49afdd5dce9701615f68ec59cec5e" + integrity sha512-i7IiiuuL+Z/jFoKTA9xeh4wGQnhnNNjMT0+1ohvlOvnFsoKZKFQQOaDPPntGJVL1JDCV+KjkN2uQKZSeW8tguQ== + dependencies: + "@polkadot/util" "^12.6.2" + "@polkadot/x-bigint" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-create@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-10.13.1.tgz#99470816d0d2ca32a6a5ce6d701b4199e8700f66" + integrity sha512-Usn1jqrz35SXgCDAqSXy7mnD6j4RvB4wyzTAZipFA6DGmhwyxxIgOzlWQWDb+1PtPKo9vtMzen5IJ+7w5chIeA== + dependencies: + "@polkadot/types-codec" "10.13.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-create@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-11.3.1.tgz#3ac2c8283f61555f9e572ca30e3485b95a0a54e2" + integrity sha512-pBXtpz5FehcRJ6j5MzFUIUN8ZWM7z6HbqK1GxBmYbJVRElcGcOg7a/rL2pQVphU0Rx1E8bSO4thzGf4wUxSX7w== + dependencies: + "@polkadot/types-codec" "11.3.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-known@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-10.13.1.tgz#8cca2d3f2c4ef67849f66ba4a35856063ec61f5f" + integrity sha512-uHjDW05EavOT5JeU8RbiFWTgPilZ+odsCcuEYIJGmK+es3lk/Qsdns9Zb7U7NJl7eJ6OWmRtyrWsLs+bU+jjIQ== + dependencies: + "@polkadot/networks" "^12.6.2" + "@polkadot/types" "10.13.1" + "@polkadot/types-codec" "10.13.1" + "@polkadot/types-create" "10.13.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-known@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-11.3.1.tgz#fc34ed29ac2474db6b66805a15d12008226346bb" + integrity sha512-3BIof7u6tn9bk3ZCIxA07iNoQ3uj4+vn3DTOjCKECozkRlt6V+kWRvqh16Hc0SHMg/QjcMb2fIu/WZhka1McUQ== + dependencies: + "@polkadot/networks" "^12.6.2" + "@polkadot/types" "11.3.1" + "@polkadot/types-codec" "11.3.1" + "@polkadot/types-create" "11.3.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-support@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-10.13.1.tgz#d4b58c8d9bcbb8e897a255d9a66c217dcaa6ead4" + integrity sha512-4gEPfz36XRQIY7inKq0HXNVVhR6HvXtm7yrEmuBuhM86LE0lQQBkISUSgR358bdn2OFSLMxMoRNoh3kcDvdGDQ== + dependencies: + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-support@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-11.3.1.tgz#dee02a67784baa13177fe9957f5d8d62e8a7e570" + integrity sha512-jTFz1GKyF7nI29yIOq4v0NiWTOf5yX4HahJNeFD8TcxoLhF+6tH/XXqrUXJEfbaTlSrRWiW1LZYlb+snctqKHA== + dependencies: + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types@10.13.1", "@polkadot/types@^10.12.4", "@polkadot/types@^10.9.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-10.13.1.tgz#979d652dc11af9cb8b32e7a55839e9762532755d" + integrity sha512-Hfvg1ZgJlYyzGSAVrDIpp3vullgxrjOlh/CSThd/PI4TTN1qHoPSFm2hs77k3mKkOzg+LrWsLE0P/LP2XddYcw== + dependencies: + "@polkadot/keyring" "^12.6.2" + "@polkadot/types-augment" "10.13.1" + "@polkadot/types-codec" "10.13.1" + "@polkadot/types-create" "10.13.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/types@11.3.1", "@polkadot/types@^11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-11.3.1.tgz#bab61b701218158099e3f548d20efc27cbf1287f" + integrity sha512-5c7uRFXQTT11Awi6T0yFIdAfD6xGDAOz06Kp7M5S9OGNZY28wSPk5x6BYfNphWPaIBmHHewYJB5qmnrdYQAWKQ== + dependencies: + "@polkadot/keyring" "^12.6.2" + "@polkadot/types-augment" "11.3.1" + "@polkadot/types-codec" "11.3.1" + "@polkadot/types-create" "11.3.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/ui-settings@3.9.1": + version "3.9.1" + resolved "https://registry.yarnpkg.com/@polkadot/ui-settings/-/ui-settings-3.9.1.tgz#3ee2e15754da87c016b38e5710ad9c0ffd591b85" + integrity sha512-G6WYluS3oE9wiK4KLK1Hi+lr0ZII65x7EcmRoqaR5BBKAr2cBnLAOfBiK5gUchntY7cw1ukXRmcCJmNmCFvwzg== + dependencies: + "@polkadot/networks" "^13.0.2" + "@polkadot/util" "^13.0.2" + eventemitter3 "^5.0.1" + store "^2.0.12" + tslib "^2.6.2" + +"@polkadot/ui-shared@3.9.1": + version "3.9.1" + resolved "https://registry.yarnpkg.com/@polkadot/ui-shared/-/ui-shared-3.9.1.tgz#20bb38a73c03b392cbda53e192485ba9d382552a" + integrity sha512-bg7t4NKy2yyuK/0h1ahTJiK2Ooe1b+qNmkPfcY3b96o9lgzPiUPYFLg+pVIS/Cu3lULd0dzZEqi4IPl63tAt+w== + dependencies: + colord "^2.9.3" + tslib "^2.6.2" + +"@polkadot/util-crypto@12.6.2", "@polkadot/util-crypto@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-12.6.2.tgz#d2d51010e8e8ca88951b7d864add797dad18bbfc" + integrity sha512-FEWI/dJ7wDMNN1WOzZAjQoIcCP/3vz3wvAp5QQm+lOrzOLj0iDmaIGIcBkz8HVm3ErfSe/uKP0KS4jgV/ib+Mg== + dependencies: + "@noble/curves" "^1.3.0" + "@noble/hashes" "^1.3.3" + "@polkadot/networks" "12.6.2" + "@polkadot/util" "12.6.2" + "@polkadot/wasm-crypto" "^7.3.2" + "@polkadot/wasm-util" "^7.3.2" + "@polkadot/x-bigint" "12.6.2" + "@polkadot/x-randomvalues" "12.6.2" + "@scure/base" "^1.1.5" + tslib "^2.6.2" + +"@polkadot/util-crypto@13.0.2", "@polkadot/util-crypto@^13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-13.0.2.tgz#fee602bcb39e9424300410f4144f170ee2a29292" + integrity sha512-woUsJJ6zd/caL7U+D30a5oM/+WK9iNI00Y8aNUHSj6Zq/KPzK9uqDBaLGWwlgrejoMQkxxiU2X0f2LzP15AtQg== + dependencies: + "@noble/curves" "^1.3.0" + "@noble/hashes" "^1.3.3" + "@polkadot/networks" "13.0.2" + "@polkadot/util" "13.0.2" + "@polkadot/wasm-crypto" "^7.3.2" + "@polkadot/wasm-util" "^7.3.2" + "@polkadot/x-bigint" "13.0.2" + "@polkadot/x-randomvalues" "13.0.2" + "@scure/base" "^1.1.5" + tslib "^2.6.2" + +"@polkadot/util@12.6.2", "@polkadot/util@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-12.6.2.tgz#9396eff491221e1f0fd28feac55fc16ecd61a8dc" + integrity sha512-l8TubR7CLEY47240uki0TQzFvtnxFIO7uI/0GoWzpYD/O62EIAMRsuY01N4DuwgKq2ZWD59WhzsLYmA5K6ksdw== + dependencies: + "@polkadot/x-bigint" "12.6.2" + "@polkadot/x-global" "12.6.2" + "@polkadot/x-textdecoder" "12.6.2" + "@polkadot/x-textencoder" "12.6.2" + "@types/bn.js" "^5.1.5" + bn.js "^5.2.1" + tslib "^2.6.2" + +"@polkadot/util@13.0.2", "@polkadot/util@^13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-13.0.2.tgz#f0a2572d74730fda8dfd690b60d53c131a688f3b" + integrity sha512-/6bS9sfhJLhs8QuqWaR1eRapzfDdGC5XAQZEPL9NN5sTTA7HxWos8rVleai0UERm8QUMabjZ9rK9KpzbXl7ojg== + dependencies: + "@polkadot/x-bigint" "13.0.2" + "@polkadot/x-global" "13.0.2" + "@polkadot/x-textdecoder" "13.0.2" + "@polkadot/x-textencoder" "13.0.2" + "@types/bn.js" "^5.1.5" + bn.js "^5.2.1" + tslib "^2.6.2" + +"@polkadot/util@^10.2.1": + version "10.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-10.4.2.tgz#df41805cb27f46b2b4dad24c371fa2a68761baa1" + integrity sha512-0r5MGICYiaCdWnx+7Axlpvzisy/bi1wZGXgCSw5+ZTyPTOqvsYRqM2X879yxvMsGfibxzWqNzaiVjToz1jvUaA== + dependencies: + "@babel/runtime" "^7.20.13" + "@polkadot/x-bigint" "10.4.2" + "@polkadot/x-global" "10.4.2" + "@polkadot/x-textdecoder" "10.4.2" + "@polkadot/x-textencoder" "10.4.2" + "@types/bn.js" "^5.1.1" + bn.js "^5.2.1" + +"@polkadot/wasm-bridge@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-7.3.2.tgz#e1b01906b19e06cbca3d94f10f5666f2ae0baadc" + integrity sha512-AJEXChcf/nKXd5Q/YLEV5dXQMle3UNT7jcXYmIffZAo/KI394a+/24PaISyQjoNC0fkzS1Q8T5pnGGHmXiVz2g== + dependencies: + "@polkadot/wasm-util" "7.3.2" + tslib "^2.6.2" + +"@polkadot/wasm-crypto-asmjs@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.3.2.tgz#c6d41bc4b48b5359d57a24ca3066d239f2d70a34" + integrity sha512-QP5eiUqUFur/2UoF2KKKYJcesc71fXhQFLT3D4ZjG28Mfk2ZPI0QNRUfpcxVQmIUpV5USHg4geCBNuCYsMm20Q== + dependencies: + tslib "^2.6.2" + +"@polkadot/wasm-crypto-init@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.3.2.tgz#7e1fe79ba978fb0a4a0f74a92d976299d38bc4b8" + integrity sha512-FPq73zGmvZtnuJaFV44brze3Lkrki3b4PebxCy9Fplw8nTmisKo9Xxtfew08r0njyYh+uiJRAxPCXadkC9sc8g== + dependencies: + "@polkadot/wasm-bridge" "7.3.2" + "@polkadot/wasm-crypto-asmjs" "7.3.2" + "@polkadot/wasm-crypto-wasm" "7.3.2" + "@polkadot/wasm-util" "7.3.2" + tslib "^2.6.2" + +"@polkadot/wasm-crypto-wasm@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.3.2.tgz#44e08ed5cf6499ce4a3aa7247071a5d01f6a74f4" + integrity sha512-15wd0EMv9IXs5Abp1ZKpKKAVyZPhATIAHfKsyoWCEFDLSOA0/K0QGOxzrAlsrdUkiKZOq7uzSIgIDgW8okx2Mw== + dependencies: + "@polkadot/wasm-util" "7.3.2" + tslib "^2.6.2" + +"@polkadot/wasm-crypto@^7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-7.3.2.tgz#61bbcd9e591500705c8c591e6aff7654bdc8afc9" + integrity sha512-+neIDLSJ6jjVXsjyZ5oLSv16oIpwp+PxFqTUaZdZDoA2EyFRQB8pP7+qLsMNk+WJuhuJ4qXil/7XiOnZYZ+wxw== + dependencies: + "@polkadot/wasm-bridge" "7.3.2" + "@polkadot/wasm-crypto-asmjs" "7.3.2" + "@polkadot/wasm-crypto-init" "7.3.2" + "@polkadot/wasm-crypto-wasm" "7.3.2" + "@polkadot/wasm-util" "7.3.2" + tslib "^2.6.2" + +"@polkadot/wasm-util@7.3.2", "@polkadot/wasm-util@^7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-util/-/wasm-util-7.3.2.tgz#4fe6370d2b029679b41a5c02cd7ebf42f9b28de1" + integrity sha512-bmD+Dxo1lTZyZNxbyPE380wd82QsX+43mgCm40boyKrRppXEyQmWT98v/Poc7chLuskYb6X8IQ6lvvK2bGR4Tg== + dependencies: + tslib "^2.6.2" + +"@polkadot/x-bigint@10.4.2": + version "10.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-10.4.2.tgz#7eb2ec732259df48b5a00f07879a1331e05606ec" + integrity sha512-awRiox+/XSReLzimAU94fPldowiwnnMUkQJe8AebYhNocAj6SJU00GNoj6j6tAho6yleOwrTJXZaWFBaQVJQNg== + dependencies: + "@babel/runtime" "^7.20.13" + "@polkadot/x-global" "10.4.2" + +"@polkadot/x-bigint@12.6.2", "@polkadot/x-bigint@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-12.6.2.tgz#59b7a615f205ae65e1ac67194aefde94d3344580" + integrity sha512-HSIk60uFPX4GOFZSnIF7VYJz7WZA7tpFJsne7SzxOooRwMTWEtw3fUpFy5cYYOeLh17/kHH1Y7SVcuxzVLc74Q== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + +"@polkadot/x-bigint@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-13.0.2.tgz#25adca9ce0c5ed691f9bced283f44f7e7d824300" + integrity sha512-h2jKT/UaxiEal8LhQeH6+GCjO7GwEqVAD2SNYteCOXff6yNttqAZYJuHZsndbVjVNwqRNf8D5q/zZkD0HUd6xQ== + dependencies: + "@polkadot/x-global" "13.0.2" + tslib "^2.6.2" + +"@polkadot/x-fetch@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-12.6.2.tgz#b1bca028db90263bafbad2636c18d838d842d439" + integrity sha512-8wM/Z9JJPWN1pzSpU7XxTI1ldj/AfC8hKioBlUahZ8gUiJaOF7K9XEFCrCDLis/A1BoOu7Ne6WMx/vsJJIbDWw== + dependencies: + "@polkadot/x-global" "12.6.2" + node-fetch "^3.3.2" + tslib "^2.6.2" + +"@polkadot/x-global@10.4.2": + version "10.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-10.4.2.tgz#5662366e3deda0b4c8f024b2d902fa838f9e60a4" + integrity sha512-g6GXHD/ykZvHap3M6wh19dO70Zm43l4jEhlxf5LtTo5/0/UporFCXr2YJYZqfbn9JbQwl1AU+NroYio+vtJdiA== + dependencies: + "@babel/runtime" "^7.20.13" + +"@polkadot/x-global@12.6.2", "@polkadot/x-global@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-12.6.2.tgz#31d4de1c3d4c44e4be3219555a6d91091decc4ec" + integrity sha512-a8d6m+PW98jmsYDtAWp88qS4dl8DyqUBsd0S+WgyfSMtpEXu6v9nXDgPZgwF5xdDvXhm+P0ZfVkVTnIGrScb5g== + dependencies: + tslib "^2.6.2" + +"@polkadot/x-global@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-13.0.2.tgz#77afc4fbd4cfac8ba78cf120836f30ecc7322a74" + integrity sha512-OoNIXLB5y8vIKpk4R+XmpDPhipNXWSUvEwUnpQT7NAxNLmzgMq1FhbrwBWWPRNHPrQonp7mqxV/X+v5lv1HW/g== + dependencies: + tslib "^2.6.2" + +"@polkadot/x-randomvalues@12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-12.6.2.tgz#13fe3619368b8bf5cb73781554859b5ff9d900a2" + integrity sha512-Vr8uG7rH2IcNJwtyf5ebdODMcr0XjoCpUbI91Zv6AlKVYOGKZlKLYJHIwpTaKKB+7KPWyQrk4Mlym/rS7v9feg== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + +"@polkadot/x-randomvalues@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-13.0.2.tgz#78ae28b345895cc816ffcad0b336c31cadfcf928" + integrity sha512-SGj+L0H/7TWZtSmtkWlixO4DFzXDdluI0UscN2h285os2Ns8PnmBbue+iJ8PVSzpY1BOxd66gvkkpboPz+jXFQ== + dependencies: + "@polkadot/x-global" "13.0.2" + tslib "^2.6.2" + +"@polkadot/x-textdecoder@10.4.2": + version "10.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-10.4.2.tgz#93202f3e5ad0e7f75a3fa02d2b8a3343091b341b" + integrity sha512-d3ADduOKUTU+cliz839+KCFmi23pxTlabH7qh7Vs1GZQvXOELWdqFOqakdiAjtMn68n1KVF4O14Y+OUm7gp/zA== + dependencies: + "@babel/runtime" "^7.20.13" + "@polkadot/x-global" "10.4.2" + +"@polkadot/x-textdecoder@12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-12.6.2.tgz#b86da0f8e8178f1ca31a7158257e92aea90b10e4" + integrity sha512-M1Bir7tYvNappfpFWXOJcnxUhBUFWkUFIdJSyH0zs5LmFtFdbKAeiDXxSp2Swp5ddOZdZgPac294/o2TnQKN1w== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + +"@polkadot/x-textdecoder@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-13.0.2.tgz#662a6855af8e7a5af17f86890e59ab44f829243a" + integrity sha512-mauglOkTJxLGmLwLc3J5Jlq/W+SHP53eiy3F8/8JxxfnXrZKgWoQXGpvXYPjFnMZj0MzDSy/6GjyGWnDCgdQFA== + dependencies: + "@polkadot/x-global" "13.0.2" + tslib "^2.6.2" + +"@polkadot/x-textencoder@10.4.2": + version "10.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-10.4.2.tgz#cd2e6c8a66b0b400a73f0164e99c510fb5c83501" + integrity sha512-mxcQuA1exnyv74Kasl5vxBq01QwckG088lYjc3KwmND6+pPrW2OWagbxFX5VFoDLDAE+UJtnUHsjdWyOTDhpQA== + dependencies: + "@babel/runtime" "^7.20.13" + "@polkadot/x-global" "10.4.2" + +"@polkadot/x-textencoder@12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-12.6.2.tgz#81d23bd904a2c36137a395c865c5fefa21abfb44" + integrity sha512-4N+3UVCpI489tUJ6cv3uf0PjOHvgGp9Dl+SZRLgFGt9mvxnvpW/7+XBADRMtlG4xi5gaRK7bgl5bmY6OMDsNdw== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + +"@polkadot/x-textencoder@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-13.0.2.tgz#5e178e0f759df50592e6870346c8db2a445af957" + integrity sha512-Lq08H2OnVXj97uaOwg7tcmRS7a4VJYkHEeWO4FyEMOk6P6lU6W8OVNjjxG0se9PCEgmyZPUDbJI//1ynzP4cXw== + dependencies: + "@polkadot/x-global" "13.0.2" + tslib "^2.6.2" + +"@polkadot/x-ws@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-12.6.2.tgz#b99094d8e53a03be1de903d13ba59adaaabc767a" + integrity sha512-cGZWo7K5eRRQCRl2LrcyCYsrc3lRbTlixZh3AzgU8uX4wASVGRlNWi/Hf4TtHNe1ExCDmxabJzdIsABIfrr7xw== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + ws "^8.15.1" + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@react-spring/animated@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.7.4.tgz#c712b2d3dc9312ef41aa8886818b539151bda062" + integrity sha512-7As+8Pty2QlemJ9O5ecsuPKjmO0NKvmVkRR1n6mEotFgWar8FKuQt2xgxz3RTgxcccghpx1YdS1FCdElQNexmQ== + dependencies: + "@react-spring/shared" "~9.7.4" + "@react-spring/types" "~9.7.4" + +"@react-spring/core@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.7.4.tgz#0eaa0b5da3d18036d87a571f23079819d45a9f46" + integrity sha512-GzjA44niEJBFUe9jN3zubRDDDP2E4tBlhNlSIkTChiNf9p4ZQlgXBg50qbXfSXHQPHak/ExYxwhipKVsQ/sUTw== + dependencies: + "@react-spring/animated" "~9.7.4" + "@react-spring/shared" "~9.7.4" + "@react-spring/types" "~9.7.4" + +"@react-spring/rafz@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.7.4.tgz#d53aa45a8cb116b81b27ba29e0cc15470ccfd449" + integrity sha512-mqDI6rW0Ca8IdryOMiXRhMtVGiEGLIO89vIOyFQXRIwwIMX30HLya24g9z4olDvFyeDW3+kibiKwtZnA4xhldA== + +"@react-spring/shared@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.7.4.tgz#8ac57505072c2aee33d77c47c4269347061a3377" + integrity sha512-bEPI7cQp94dOtCFSEYpxvLxj0+xQfB5r9Ru1h8OMycsIq7zFZon1G0sHrBLaLQIWeMCllc4tVDYRTLIRv70C8w== + dependencies: + "@react-spring/rafz" "~9.7.4" + "@react-spring/types" "~9.7.4" + +"@react-spring/types@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.7.4.tgz#c849a7f062b5163d078e5e75f28c8f6acf91792e" + integrity sha512-iQVztO09ZVfsletMiY+DpT/JRiBntdsdJ4uqk3UJFhrhS8mIC9ZOZbmfGSRs/kdbNPQkVyzucceDicQ/3Mlj9g== + +"@react-spring/web@9.4.5 || ^9.7.2": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.7.4.tgz#0086ab5dcf17e6a8f3d7e7f8041ccb4cc2fa10dc" + integrity sha512-UMvCZp7I5HCVIleSa4BwbNxynqvj+mJjG2m20VO2yPoi2pnCYANy58flvz9v/YcXTAvsmL655FV3pm5fbr6akA== + dependencies: + "@react-spring/animated" "~9.7.4" + "@react-spring/core" "~9.7.4" + "@react-spring/shared" "~9.7.4" + "@react-spring/types" "~9.7.4" + +"@repeaterjs/repeater@^3.0.4", "@repeaterjs/repeater@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.6.tgz#be23df0143ceec3c69f8b6c2517971a5578fdaa2" + integrity sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA== + +"@resvg/resvg-wasm@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@resvg/resvg-wasm/-/resvg-wasm-2.4.0.tgz#e01164b9a267c822e1ff797daa2fb91b663ea6f0" + integrity sha512-C7c51Nn4yTxXFKvgh2txJFNweaVcfUPQxwEUFw4aWsCmfiBDJsTSwviIF8EcwjQ6k8bPyMWCl1vw4BdxE569Cg== + +"@rollup/plugin-babel@^5.2.0": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" + integrity sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@rollup/pluginutils" "^3.1.0" + +"@rollup/plugin-node-resolve@^11.2.1": + version "11.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60" + integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/plugin-replace@^2.4.1": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" + integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + magic-string "^0.25.7" + +"@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@sapphire/async-queue@^1.5.2": + version "1.5.3" + resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.3.tgz#03cd2a2f3665068f314736bdc56eee2025352422" + integrity sha512-x7zadcfJGxFka1Q3f8gCts1F0xMwCKbZweM85xECGI0hBTeIZJGGCrHgLggihBoprlQ/hBmDR5LKfIPqnmHM3w== + +"@sapphire/snowflake@^3.5.3": + version "3.5.3" + resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.5.3.tgz#0c102aa2ec5b34f806e9bc8625fc6a5e1d0a0c6a" + integrity sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ== + +"@scure/base@^1.1.1", "@scure/base@^1.1.5": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.7.tgz#fe973311a5c6267846aa131bc72e96c5d40d2b30" + integrity sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g== + +"@shuding/opentype.js@1.4.0-beta.0": + version "1.4.0-beta.0" + resolved "https://registry.yarnpkg.com/@shuding/opentype.js/-/opentype.js-1.4.0-beta.0.tgz#5d1e7e9e056f546aad41df1c5043f8f85d39e24b" + integrity sha512-3NgmNyH3l/Hv6EvsWJbsvpcpUba6R8IREQ83nH83cyakCw7uM1arZKNfHwv1Wz6jgqrF/j4x5ELvR6PnK9nTcA== + dependencies: + fflate "^0.7.3" + string.prototype.codepointat "^0.2.1" + +"@sigstore/bundle@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.3.2.tgz#ad4dbb95d665405fd4a7a02c8a073dbd01e4e95e" + integrity sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA== + dependencies: + "@sigstore/protobuf-specs" "^0.3.2" + +"@sigstore/core@^1.0.0", "@sigstore/core@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@sigstore/core/-/core-1.1.0.tgz#5583d8f7ffe599fa0a89f2bf289301a5af262380" + integrity sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg== + +"@sigstore/protobuf-specs@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz#5becf88e494a920f548d0163e2978f81b44b7d6f" + integrity sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw== + +"@sigstore/sign@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.3.2.tgz#d3d01e56d03af96fd5c3a9b9897516b1233fc1c4" + integrity sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA== + dependencies: + "@sigstore/bundle" "^2.3.2" + "@sigstore/core" "^1.0.0" + "@sigstore/protobuf-specs" "^0.3.2" + make-fetch-happen "^13.0.1" + proc-log "^4.2.0" + promise-retry "^2.0.1" + +"@sigstore/tuf@^2.3.4": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-2.3.4.tgz#da1d2a20144f3b87c0172920cbc8dcc7851ca27c" + integrity sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw== + dependencies: + "@sigstore/protobuf-specs" "^0.3.2" + tuf-js "^2.2.1" + +"@sigstore/verify@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@sigstore/verify/-/verify-1.2.1.tgz#c7e60241b432890dcb8bd8322427f6062ef819e1" + integrity sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g== + dependencies: + "@sigstore/bundle" "^2.3.2" + "@sigstore/core" "^1.1.0" + "@sigstore/protobuf-specs" "^0.3.2" + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@spruceid/siwe-parser@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@spruceid/siwe-parser/-/siwe-parser-2.1.2.tgz#3e13e7d3ac0bfdaf109a07342590eb21daee2fc3" + integrity sha512-d/r3S1LwJyMaRAKQ0awmo9whfXeE88Qt00vRj91q5uv5ATtWIQEGJ67Yr5eSZw5zp1/fZCXZYuEckt8lSkereQ== + dependencies: + "@noble/hashes" "^1.1.2" + apg-js "^4.3.0" + uri-js "^4.4.1" + valid-url "^1.0.9" + +"@sqltools/formatter@^1.2.5": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.5.tgz#3abc203c79b8c3e90fd6c156a0c62d5403520e12" + integrity sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw== + +"@stablelib/binary@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" + integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== + dependencies: + "@stablelib/int" "^1.0.1" + +"@stablelib/int@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" + integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== + +"@stablelib/random@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c" + integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/wipe@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" + integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== + +"@subsquid/graphiql-console@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@subsquid/graphiql-console/-/graphiql-console-0.3.0.tgz#415d305f1b7df7f737c788a3311cfa3179b6dbd1" + integrity sha512-C89mus6IXnNi0xMQrZqUFBZwLj8tbuq9lye8Gq/lHmmERAUpi6UsWEyLdJLx2mneZzF3JtY8eNiiZ16jmjtvfw== + +"@subsquid/graphql-server@^4.5.1": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@subsquid/graphql-server/-/graphql-server-4.7.0.tgz#08656425b525ce9a5eccfc1ef885faf706b05795" + integrity sha512-KzpiMT3veTSWdYMcnsleqJyzgeYfuO1z9u9qjC24Q4cCvp/4eMhWbxp0oUYnpWwwaZYGL/wACMvulpYEB3ndxQ== + dependencies: + "@apollo/utils.keyvadapter" "~1.1.2" + "@apollo/utils.keyvaluecache" "~1.0.2" + "@graphql-tools/merge" "^9.0.1" + "@graphql-tools/schema" "^10.0.2" + "@graphql-tools/utils" "^10.0.11" + "@keyv/redis" "~2.5.8" + "@subsquid/logger" "^1.3.3" + "@subsquid/openreader" "^5.0.0" + "@subsquid/typeorm-config" "^4.1.1" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-commander" "^1.4.0" + "@subsquid/util-internal-http-server" "^2.0.0" + "@subsquid/util-internal-ts-node" "^0.0.0" + apollo-server-core "^3.13.0" + apollo-server-express "^3.13.0" + apollo-server-plugin-response-cache "~3.7.1" + commander "^11.1.0" + dotenv "^16.3.1" + express "^4.18.2" + graphql "^15.8.0" + graphql-ws "^5.14.2" + keyv "~4.5.4" + pg "^8.11.3" + ws "^8.14.2" + +"@subsquid/http-client@^1.4.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@subsquid/http-client/-/http-client-1.5.0.tgz#693c7ae4830f02662e934731ca00c9af5b8e4939" + integrity sha512-C7lb67mu/Xhno3x4EOzIPZ9fqixq797rT7DxvKVRXJBE7dYFEPyrOBiKO1W45YwX3lFfuHGKpMu2YBOeS/L7lQ== + dependencies: + "@subsquid/logger" "^1.3.3" + "@subsquid/util-internal" "^3.2.0" + node-fetch "^3.3.2" + +"@subsquid/logger@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@subsquid/logger/-/logger-1.3.3.tgz#db5e431324a7ba97b09ece7b88f4cd6962ab6462" + integrity sha512-BdoRVIOrIRzKdMZPoJxzJzPLulf5Q09GeLtJn0whP+rhDV5nQ4ANDAzjPg9jmgH9WkMYAr2XH4lny/4PjhQUNA== + dependencies: + "@subsquid/util-internal-hex" "^1.2.2" + "@subsquid/util-internal-json" "^1.2.2" + supports-color "^8.1.1" + +"@subsquid/openreader@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@subsquid/openreader/-/openreader-5.0.0.tgz#32ce7528218dba8766d787643867083345621b5f" + integrity sha512-sSi2PtZcTBW6ZAhquIrFF5R6sQigtz0cJHdJV4S0uAEp+QzZhRA/GRVNmMw/Ab9gPd7Meiq+18PbsfN08IBedw== + dependencies: + "@graphql-tools/merge" "^9.0.1" + "@subsquid/graphiql-console" "^0.3.0" + "@subsquid/logger" "^1.3.3" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-commander" "^1.4.0" + "@subsquid/util-internal-hex" "^1.2.2" + "@subsquid/util-internal-http-server" "^2.0.0" + "@subsquid/util-naming" "^1.3.0" + apollo-server-core "^3.13.0" + apollo-server-express "^3.13.0" + commander "^11.1.0" + deep-equal "^2.2.3" + express "^4.18.2" + graphql "^15.8.0" + graphql-parse-resolve-info "^4.14.0" + graphql-ws "^5.14.2" + inflected "^2.1.0" + pg "^8.11.3" + ws "^8.14.2" + +"@subsquid/rpc-client@^4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@subsquid/rpc-client/-/rpc-client-4.9.0.tgz#c7040586d410e55dfb9606cfeea88dc7c1aca778" + integrity sha512-lpb6qRMMlaacXOFPRhv4CZ7g4w7pKIR7ZEbMjyFexLOdv9MkcYzuGD5XT5REGaBA6mfQMaLa33K5lqAb+tJKBQ== + dependencies: + "@subsquid/http-client" "^1.4.0" + "@subsquid/logger" "^1.3.3" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-binary-heap" "^1.0.0" + "@subsquid/util-internal-counters" "^1.3.2" + "@subsquid/util-internal-json-fix-unsafe-integers" "^0.0.0" + websocket "^1.0.34" + +"@subsquid/scale-codec@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@subsquid/scale-codec/-/scale-codec-4.0.1.tgz#4d576619c8b75933e1bc39ec57edeaf49fa9755c" + integrity sha512-H3mi5GIvlrvOSJVSYQRNnaiulSDktPF4TwUvquAgN86tN4kokyX8XcEM2Htrm1sVWRtMi7SgYpyVR5Yg5iPKUQ== + dependencies: + "@subsquid/util-internal-hex" "^1.2.2" + "@subsquid/util-internal-json" "^1.2.2" + +"@subsquid/scale-type-system@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@subsquid/scale-type-system/-/scale-type-system-1.0.2.tgz#bdbe03602b44a7d3a82d2ee7147307cefad502eb" + integrity sha512-bZSUGO/Hfnf/+luZ8lWEsGqr9iIiQeaifmXEiOGBpr5Ace6H+pPY3lFmDTPWigoqt7VxrhRO0jvk5RLAyeBJvg== + dependencies: + "@subsquid/util-internal" "^3.0.0" + +"@subsquid/ss58-codec@^1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@subsquid/ss58-codec/-/ss58-codec-1.2.3.tgz#7a139ea59357cac7290719f08452a15828fbd3f6" + integrity sha512-PFWGOYDVEa1F+u5NoH4pJcBRCe4vv6B0U4nvgmwTA+PShhVB8aC6TjZZmMOE8/BLEDjRIpT7avpz7VR7zI6H0A== + dependencies: + base-x "^4.0.0" + blake2b "^2.1.4" + +"@subsquid/ss58@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@subsquid/ss58/-/ss58-2.0.2.tgz#dbc7fccaf1634b34b5ae3c43f6b4a12d94cdb350" + integrity sha512-2chHMJ7jXvZzYQiXiA5MYYAVBobPcnQxWt3/jsiiZT6vWorjlVElXoQjZ0G/FKRHCcJ4GD10zDd8sG+7sPp2fw== + dependencies: + "@subsquid/ss58-codec" "^1.2.3" + "@subsquid/util-internal-hex" "^1.2.2" + +"@subsquid/substrate-data-raw@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@subsquid/substrate-data-raw/-/substrate-data-raw-1.2.0.tgz#325b8738f3ff942e19c92774fa41abe5152ac4c9" + integrity sha512-bQne2arxfbCAe3Kr0WikM2uyC3L4DfvkcQpy5+9nYBMzH5/Z9KBZMLUzv5dwFDAkHlCXEogcYu5Yh0NGk3O93Q== + dependencies: + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-ingest-tools" "^1.1.4" + "@subsquid/util-internal-range" "^0.3.0" + "@subsquid/util-timeout" "^2.3.2" + +"@subsquid/substrate-data@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@subsquid/substrate-data/-/substrate-data-4.2.0.tgz#7a0a3910c241469ddacd2723ddcefcb8ebcd2c1a" + integrity sha512-N+bwAhv2cfGJpTuijLaMsL8H42x0j6Y97BDBliUZY2/Rcg9wog0qckJuKH1HqHpVxP3C3qD2kHVVubTPCG5JQA== + dependencies: + "@subsquid/scale-codec" "^4.0.1" + "@subsquid/substrate-data-raw" "^1.2.0" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-hex" "^1.2.2" + "@subsquid/util-internal-ingest-tools" "^1.1.4" + "@subsquid/util-internal-range" "^0.3.0" + "@subsquid/util-xxhash" "^1.2.2" + "@substrate/calc" "^0.2.8" + blake2b "^2.1.4" + +"@subsquid/substrate-metadata-explorer@^3.1.2": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-3.2.0.tgz#4e341bec144f132382563c7f56753731f14da136" + integrity sha512-sir8ZDjJ8bCErbrx3USy6qBq0Nszyqu5UOO+8jcnZ1OCvKPJDzudu9m1SExjzRShdKoKroSObTMQA52fchC4Vw== + dependencies: + "@subsquid/logger" "^1.3.3" + "@subsquid/rpc-client" "^4.9.0" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-commander" "^1.4.0" + "@subsquid/util-internal-hex" "^1.2.2" + "@subsquid/util-internal-range" "^0.3.0" + "@subsquid/util-internal-read-lines" "^1.2.2" + commander "^11.1.0" + +"@subsquid/substrate-processor@^8.3.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@subsquid/substrate-processor/-/substrate-processor-8.5.0.tgz#fde789a150c413a7f418ae54190bb84f3248456b" + integrity sha512-Xk+mt+Bf3TH0GlVw5MjD+1I5ccEpyxymx9f1CtE0t7Etwwkmhv3o29eukPUUEPPn+jJUyJXSzPMzh4M3TIYqDw== + dependencies: + "@subsquid/http-client" "^1.4.0" + "@subsquid/logger" "^1.3.3" + "@subsquid/rpc-client" "^4.9.0" + "@subsquid/substrate-data" "^4.2.0" + "@subsquid/substrate-data-raw" "^1.2.0" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-archive-client" "^0.1.2" + "@subsquid/util-internal-hex" "^1.2.2" + "@subsquid/util-internal-ingest-tools" "^1.1.4" + "@subsquid/util-internal-json" "^1.2.3" + "@subsquid/util-internal-processor-tools" "^4.1.1" + "@subsquid/util-internal-range" "^0.3.0" + "@subsquid/util-internal-validation" "^0.5.0" + +"@subsquid/substrate-runtime@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@subsquid/substrate-runtime/-/substrate-runtime-2.0.0.tgz#c887757f27a2a979f6a8a4440372712861aec8a5" + integrity sha512-sjw0BmcUPnXasYqv9zuI8wb21Y2hyIPpz24ut9eBTVXUvdBobASw/6iFlQsFoxqzz39xxQfZIZsWXBet5AViAw== + dependencies: + "@subsquid/scale-codec" "^4.0.1" + "@subsquid/scale-type-system" "^1.0.2" + "@subsquid/util-internal" "^3.1.0" + "@subsquid/util-internal-hex" "^1.2.2" + "@subsquid/util-naming" "^1.2.2" + "@subsquid/util-xxhash" "^1.2.2" + blake2b "^2.1.4" + +"@subsquid/substrate-typegen@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@subsquid/substrate-typegen/-/substrate-typegen-8.1.0.tgz#b5a523b3e86902aa0116eca5a2cc9757e28753f3" + integrity sha512-4wEuti5ldhUdzyguZQi7IImQFflXrzz9TjviuKXSChrePs5M1oMFhtJw5X5oMDBmRB/xDY9YLioNUPArxC6O3g== + dependencies: + "@subsquid/http-client" "^1.4.0" + "@subsquid/logger" "^1.3.3" + "@subsquid/substrate-metadata-explorer" "^3.1.2" + "@subsquid/util-internal" "^3.1.0" + "@subsquid/util-internal-code-printer" "^1.2.2" + "@subsquid/util-internal-config" "^2.2.2" + "@subsquid/util-internal-read-lines" "^1.2.2" + "@subsquid/util-naming" "^1.2.2" + commander "^11.1.0" + +"@subsquid/typeorm-codegen@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@subsquid/typeorm-codegen/-/typeorm-codegen-2.0.2.tgz#8848f00d08ca303fb31e909c6ad93a7513473784" + integrity sha512-MDeA4LrqbRIYpmlwRdO1GyPzq+pfIS17VAgkMbYx2LtyqMbSvIaYU5D+iE0QMJr/XvO4bXC8+qZ6Fx4kIMuvfw== + dependencies: + "@subsquid/openreader" "^5.0.0" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-code-printer" "^1.2.2" + "@subsquid/util-naming" "^1.3.0" + commander "^11.1.0" + +"@subsquid/typeorm-config@^4.1.0", "@subsquid/typeorm-config@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@subsquid/typeorm-config/-/typeorm-config-4.1.1.tgz#9b486d4c6e8d3c5a381337b14092b6decc497929" + integrity sha512-3T2L2jmFIRYxWHL/w4rMuaSiHLhDywQWPKtfD3TaSohjXR+VdDG5XimDMmSwM4dzQTBToGpnfUEkzH3v1+EnCg== + dependencies: + "@subsquid/logger" "^1.3.3" + "@subsquid/util-internal-ts-node" "^0.0.0" + "@subsquid/util-naming" "^1.3.0" + +"@subsquid/typeorm-migration@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@subsquid/typeorm-migration/-/typeorm-migration-1.3.0.tgz#8251d255a6e4b9309240d03bd03b84a2129c4275" + integrity sha512-+xyOvN5asKdSEUMjKRuuwLDaOSRBBCRc2LIVdsyv5nnXXcmtOShfQsHQNX9EdKD2xx4cH2bnD7ol3PY63Q2xQw== + dependencies: + "@subsquid/typeorm-config" "^4.1.0" + "@subsquid/util-internal" "^3.0.0" + "@subsquid/util-internal-code-printer" "^1.2.2" + "@subsquid/util-internal-ts-node" "^0.0.0" + commander "^11.1.0" + dotenv "^16.3.1" + +"@subsquid/typeorm-store@^1.4.0": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@subsquid/typeorm-store/-/typeorm-store-1.5.1.tgz#72ce3ba9a8cec296ee4f6fbe49e3dc27f019a7e2" + integrity sha512-XIhc/4qotnJP+8RDxWjUdsSCr+LOPOAp9U+u0VCqnyXx5rN13MDS0L5KSkIGinr/OQtK1CBWmRpDLF4ExWcWCw== + dependencies: + "@subsquid/typeorm-config" "^4.1.1" + "@subsquid/util-internal" "^3.2.0" + +"@subsquid/util-internal-archive-client@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-archive-client/-/util-internal-archive-client-0.1.2.tgz#c26655abbe99fc628d206b12b79050a637041a41" + integrity sha512-XATZWOIHUqIuqzb9hxaFIsz/BItb5qLoYjk6uhFcR9ART2AExXLU5l26SvSrq3hUnqfznIkQMZVQ1SKqnGzx4g== + dependencies: + "@subsquid/util-internal" "^3.1.0" + "@subsquid/util-internal-range" "^0.3.0" + +"@subsquid/util-internal-binary-heap@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-binary-heap/-/util-internal-binary-heap-1.0.0.tgz#1f86f7677c2f773697ddc6b79a09cb5c55e6e4b0" + integrity sha512-88auuc8yNFmCZugmJSTYzS7WM/nN2obKGQCgrl8Jty5rJUFbqazGSi8icqftKhv6MPtUMJ3PSTRLiTFXAUGnAA== + +"@subsquid/util-internal-code-printer@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-code-printer/-/util-internal-code-printer-1.2.2.tgz#29621d2cae376725a3c8612a0ac53d14afed4658" + integrity sha512-uerf8T/FU4bxxhat09MgRrdmwifLwV+tO7QvlMvZ5ccwaVrJjHs+0/LY/h1e9YowH3+ZtwPqjYrd5tNOHWX8wA== + +"@subsquid/util-internal-commander@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-commander/-/util-internal-commander-1.4.0.tgz#f607fc395fc65d012fd3daeacb3df1d72cabaeff" + integrity sha512-I+IztlLVow9z2S5lK/ON4aBRYXKtAKXl/rVPUn1Ue5vq+5JgEFbWEKJgnwXkd0qKnKeoYeaRFlcyQVfxirxzJw== + +"@subsquid/util-internal-config@^2.2.2": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-config/-/util-internal-config-2.2.2.tgz#c9244761c079be98911196dbdef7d295c328972d" + integrity sha512-Qc8YH8eoPWrOoPHLnXJ/ksPo2pLpa126bY7qaM22/++Nk8DyexLxgbjYZTBeIHd/DXjTfgJpDDfxmCyy5RWZmA== + dependencies: + "@exodus/schemasafe" "^1.3.0" + jsonc-parser "^3.2.0" + +"@subsquid/util-internal-counters@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-counters/-/util-internal-counters-1.3.2.tgz#894ad268a1fade481a896577e42a83b73019ffa6" + integrity sha512-GxpOIL36JXSo0KdOT7k6CsI4DY804rn/X7pTdfKhych0ReHaDghnwNyvgb7Njv9euEHWUt4MxXbfQ9YrbpPDng== + +"@subsquid/util-internal-hex@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-hex/-/util-internal-hex-1.2.2.tgz#958ab0aceac0b1160227a688d9d3099c6230f27f" + integrity sha512-E43HVqf23jP5hvtWF9GsiN8luANjnJ1daR2SVTwaIUAYU/uNjv1Bi6tHz2uexlflBhyxAgBDmHgunXZ45wQTIw== + +"@subsquid/util-internal-http-server@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-http-server/-/util-internal-http-server-2.0.0.tgz#ebdad207eb8bcb290623304a2113547d9b1d29c5" + integrity sha512-MUAJGMuDjbA3B+KQFZmMkm9FuWVx067pINt+EWuq3fSZqYPr1kRkTCTSJK7uT6Q8omqJtJFRWveyOWlXmixvfg== + dependencies: + "@subsquid/logger" "^1.3.3" + stoppable "^1.1.0" + +"@subsquid/util-internal-ingest-tools@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-ingest-tools/-/util-internal-ingest-tools-1.1.4.tgz#bb7c1a6f3006eecbc23866021ba9f6fb7ebae1b7" + integrity sha512-2xWyqfg0mITsNdsYuGi3++UTy/D04N69KovyW5Rd71zCDSEedV0ePX5hQl/IT/o+H/u++HcXPggwJMVl09g6kQ== + dependencies: + "@subsquid/logger" "^1.3.3" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-range" "^0.3.0" + +"@subsquid/util-internal-json-fix-unsafe-integers@^0.0.0": + version "0.0.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-json-fix-unsafe-integers/-/util-internal-json-fix-unsafe-integers-0.0.0.tgz#0baaefac27e3a1831df240b262c9cb78b166657f" + integrity sha512-mtbN15IgXtV4yo98RQla+O3DhFwB28o3JTBrFuBc/i/qzxyZNbKoVdq/uczomGdXrHxGkWhTDe/istIQe9gn6w== + +"@subsquid/util-internal-json@^1.2.2", "@subsquid/util-internal-json@^1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-json/-/util-internal-json-1.2.3.tgz#836430ccb7b6e733cec6157aa2202a85db4fae26" + integrity sha512-H5qW5kG20IzVMpb7GhPbVRxGuACEf1DPIXE1+LNXYxt8t/GX4zQREQWHRvCB3lck+RORLJD3WJbQUtxN5UYB3Q== + dependencies: + "@subsquid/util-internal-hex" "^1.2.2" + +"@subsquid/util-internal-processor-tools@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-processor-tools/-/util-internal-processor-tools-4.1.1.tgz#b432a11422962036690bc5c58439c0c90d5e2d24" + integrity sha512-zzisejusRteAvwjqFDLlFapH9b86E8GdfNswuNWSjASE+VWadJ/PLfrlXFnsbAo4SxPKtqXWEewoK8cjzVjaZA== + dependencies: + "@subsquid/logger" "^1.3.3" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-counters" "^1.3.2" + "@subsquid/util-internal-prometheus-server" "^1.3.0" + "@subsquid/util-internal-range" "^0.3.0" + "@subsquid/util-internal-squid-id" "^0.0.0" + prom-client "^14.2.0" + +"@subsquid/util-internal-prometheus-server@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-prometheus-server/-/util-internal-prometheus-server-1.3.0.tgz#f0e692b5a6b088555e1260424a1745eb77d2dbc7" + integrity sha512-E/ch5mxBg1CIGPsuAqUAQ7vVln2oTPm+Rl+0WYweH8JeZ81rD01XAmxhDuZzZnMMMzfZd9W4NlE4mCXbhSY1Ug== + dependencies: + "@subsquid/util-internal-http-server" "^2.0.0" + +"@subsquid/util-internal-range@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-range/-/util-internal-range-0.3.0.tgz#7aa7dceaf15f28a4f3bf9318b2dc84ebdef7cf1b" + integrity sha512-5/oDNW0TS66o4vWRzYSYXEfNnFRZsAzoi4pZNdPn7n1l+xV7ZTa0Y57XA6cP5hrWCaIYav4z1zECPngLDV/qeQ== + dependencies: + "@subsquid/util-internal" "^3.1.0" + "@subsquid/util-internal-binary-heap" "^1.0.0" + +"@subsquid/util-internal-read-lines@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-read-lines/-/util-internal-read-lines-1.2.2.tgz#a93336e14e689e529bda170ec6e7ec94e14710f4" + integrity sha512-D9Cks2KVmVQMsJLFskQlwufykWiLLooDFmAYmgwSkZEVnCqJ1ukX8PZfkI+ADfhT5LB64O9FZL7hI0939qiXBA== + +"@subsquid/util-internal-squid-id@^0.0.0": + version "0.0.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-squid-id/-/util-internal-squid-id-0.0.0.tgz#1ec90d7cfee5e3764ec4feeb8103170e3e1ed55c" + integrity sha512-LyVZIGUbC87r+3VFBRiNOEycxvpkOEEjt5enY02iGl6MneLwq3m17D44xAkwfFj/U+t7GA76eeHIoI2ZkiQKog== + +"@subsquid/util-internal-ts-node@^0.0.0": + version "0.0.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-ts-node/-/util-internal-ts-node-0.0.0.tgz#186f5eee276af8f2bfb42201a62e4639a5cf37c4" + integrity sha512-VBnrKrkNcqbT3hMLrjpEPuwMAihFhW9oUmK53bccBCCXrUiATNUblQD2S4IWd9/UBO5Q33ohpbE9sAodDq2DXw== + +"@subsquid/util-internal-validation@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-validation/-/util-internal-validation-0.5.0.tgz#d68ae6f88a7bf2bc05ba0afbc5751a79666bdeb4" + integrity sha512-mGiwOzc/Fq651CbFe7aEpERXBr+BkqAz8cDpqTVAsve6ghvB5tvwlAv7i1MWnyt/g7OqX1LhYMhh7NFipyMeyA== + +"@subsquid/util-internal@^3.0.0", "@subsquid/util-internal@^3.1.0", "@subsquid/util-internal@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal/-/util-internal-3.2.0.tgz#5d484ee1f0b16f012775b55096b75f885ca6bc3c" + integrity sha512-foNCjOmZaP8MKMa9sNe2GXTjFSDM9UqA0I0C0/ZvCxM1lCmG3mxZb70f8Wyi7TePXC/eV8eARbIqFyz0GjQmzA== + +"@subsquid/util-naming@^1.2.2", "@subsquid/util-naming@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-naming/-/util-naming-1.3.0.tgz#50394fc021a86f807c481b899bef2fdf068f1107" + integrity sha512-PfYg1uFHwb7e6egbkzIbQTWf7DVlZIQr2gHy4VE35ZNiA15R9wkJLo/Mym6OkwLQyjJwhhq7pCFhkz6tm19m+A== + dependencies: + camelcase "^6.3.0" + inflected "^2.1.0" + +"@subsquid/util-timeout@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-timeout/-/util-timeout-2.3.2.tgz#0f16a71a8f68191295f49df8c1be1593e9f98cae" + integrity sha512-DVUnuiWAX7/4ZvbzuHENUShEEV4G0M38mQ/+R8DpHxwpCSrtEaSRaUMwdyUSn/WVqR7wo9+jkLCxFjE5feCURQ== + +"@subsquid/util-xxhash@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-xxhash/-/util-xxhash-1.2.2.tgz#2b11c409aa3ef19aa59d8714ae64f5d4bb61514c" + integrity sha512-S49O4bxs80y3/oBl1xKBE/zzvDPLr88yE+03zfOXaNj/wesTGzicqBxhzDULmyo6kpdRmc0ZPOZCQ3U6gNQpxQ== + dependencies: + xxhash-wasm "^1.0.2" + xxhashjs "^0.2.2" + +"@substrate/calc@^0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@substrate/calc/-/calc-0.2.8.tgz#2708d4f0514a49a40b6497b655f24307fc4f5f57" + integrity sha512-1c3mxf35FBeOswduhy0Wil9s4exHahXFo974qa0Ci2AORX8JTxmwhBb10+3Ls9iWoTFwvgOaFr9v1HeRL5tCig== + +"@substrate/connect-extension-protocol@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.0.0.tgz#badaa6e6b5f7c7d56987d778f4944ddb83cd9ea7" + integrity sha512-nKu8pDrE3LNCEgJjZe1iGXzaD6OSIDD4Xzz/yo4KO9mQ6LBvf49BVrt4qxBFGL6++NneLiWUZGoh+VSd4PyVIg== + +"@substrate/connect-known-chains@^1.1.1", "@substrate/connect-known-chains@^1.1.4": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@substrate/connect-known-chains/-/connect-known-chains-1.3.0.tgz#bc8dc2437e46b3701b64526c90e1de720a1605d8" + integrity sha512-BHcWdhOsnHtoWuS4LpFpH3MbLAhm1amq4hvl5ctI47KNZcZJcEPAF4zmeaTMuvj+UJ7LEFooy46Mn7zok47MwA== + +"@substrate/connect@0.8.10": + version "0.8.10" + resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.8.10.tgz#810b6589f848828aa840c731a1f36b84fe0e5956" + integrity sha512-DIyQ13DDlXqVFnLV+S6/JDgiGowVRRrh18kahieJxhgvzcWicw5eLc6jpfQ0moVVLBYkO7rctB5Wreldwpva8w== + dependencies: + "@substrate/connect-extension-protocol" "^2.0.0" + "@substrate/connect-known-chains" "^1.1.4" + "@substrate/light-client-extension-helpers" "^0.0.6" + smoldot "2.0.22" + +"@substrate/connect@0.8.8": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.8.8.tgz#80879f2241e2bd4f24a9aa25d7997fd91a5e68e3" + integrity sha512-zwaxuNEVI9bGt0rT8PEJiXOyebLIo6QN1SyiAHRPBOl6g3Sy0KKdSN8Jmyn++oXhVRD8aIe75/V8ZkS81T+BPQ== + dependencies: + "@substrate/connect-extension-protocol" "^2.0.0" + "@substrate/connect-known-chains" "^1.1.1" + "@substrate/light-client-extension-helpers" "^0.0.4" + smoldot "2.0.22" + +"@substrate/light-client-extension-helpers@^0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.4.tgz#a5958d5c1aac7df69f55bd90991aa935500f8124" + integrity sha512-vfKcigzL0SpiK+u9sX6dq2lQSDtuFLOxIJx2CKPouPEHIs8C+fpsufn52r19GQn+qDhU8POMPHOVoqLktj8UEA== + dependencies: + "@polkadot-api/client" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/json-rpc-provider" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/json-rpc-provider-proxy" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/substrate-client" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@substrate/connect-extension-protocol" "^2.0.0" + "@substrate/connect-known-chains" "^1.1.1" + rxjs "^7.8.1" + +"@substrate/light-client-extension-helpers@^0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.6.tgz#bec1c7997241226db50b44ad85a992b4348d21c3" + integrity sha512-girltEuxQ1BvkJWmc8JJlk4ZxnlGXc/wkLcNguhY+UoDEMBK0LsdtfzQKIfrIehi4QdeSBlFEFBoI4RqPmsZzA== + dependencies: + "@polkadot-api/json-rpc-provider" "0.0.1" + "@polkadot-api/json-rpc-provider-proxy" "0.0.1" + "@polkadot-api/observable-client" "0.1.0" + "@polkadot-api/substrate-client" "0.0.1" + "@substrate/connect-extension-protocol" "^2.0.0" + "@substrate/connect-known-chains" "^1.1.4" + rxjs "^7.8.1" + +"@substrate/ss58-registry@^1.44.0", "@substrate/ss58-registry@^1.46.0": + version "1.49.0" + resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.49.0.tgz#ed9507316d13f49b2bccb65f08ec97180f71fc39" + integrity sha512-leW6Ix4LD7XgvxT7+aobPWSw+WvPcN2Rxof1rmd0mNC5t2n99k1N7UNEvz7YEFSOUeHWmKIY7F5q8KeIqYoHfA== + +"@subwallet/wallet-connect@^0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@subwallet/wallet-connect/-/wallet-connect-0.2.7.tgz#3574c3746c1d797a24e8e9691db73d2355de17f4" + integrity sha512-BcSLbZF77N2aptq9sRpACIUVo25yW0Ey/6x/BeW/bu0C2wC4/SAxIY/n5S5T74glNlzb+6a9wmeRQa1IrBbAFw== + dependencies: + "@babel/runtime" "^7.16.7" + "@metamask/providers" "^11.1.1" + "@metamask/types" "^1.1.0" + "@polkadot/extension-dapp" "^0.46.5" + "@polkadot/extension-inject" "^0.46.5" + "@polkadot/types" "^10.9.1" + "@polkadot/util" "^10.2.1" + +"@surma/rollup-plugin-off-main-thread@^2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" + integrity sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ== + dependencies: + ejs "^3.1.6" + json5 "^2.2.0" + magic-string "^0.25.0" + string.prototype.matchall "^4.0.6" + +"@svgr/babel-plugin-add-jsx-attribute@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz#4001f5d5dd87fa13303e36ee106e3ff3a7eb8b22" + integrity sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g== + +"@svgr/babel-plugin-remove-jsx-attribute@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz#69177f7937233caca3a1afb051906698f2f59186" + integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA== + +"@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz#c2c48104cfd7dcd557f373b70a56e9e3bdae1d44" + integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz#8fbb6b2e91fa26ac5d4aa25c6b6e4f20f9c0ae27" + integrity sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ== + +"@svgr/babel-plugin-svg-dynamic-title@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz#1d5ba1d281363fc0f2f29a60d6d936f9bbc657b0" + integrity sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og== + +"@svgr/babel-plugin-svg-em-dimensions@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz#35e08df300ea8b1d41cb8f62309c241b0369e501" + integrity sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g== + +"@svgr/babel-plugin-transform-react-native-svg@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz#90a8b63998b688b284f255c6a5248abd5b28d754" + integrity sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q== + +"@svgr/babel-plugin-transform-svg-component@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz#013b4bfca88779711f0ed2739f3f7efcefcf4f7e" + integrity sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw== + +"@svgr/babel-preset@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-8.1.0.tgz#0e87119aecdf1c424840b9d4565b7137cabf9ece" + integrity sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "8.0.0" + "@svgr/babel-plugin-remove-jsx-attribute" "8.0.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "8.0.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "8.0.0" + "@svgr/babel-plugin-svg-dynamic-title" "8.0.0" + "@svgr/babel-plugin-svg-em-dimensions" "8.0.0" + "@svgr/babel-plugin-transform-react-native-svg" "8.1.0" + "@svgr/babel-plugin-transform-svg-component" "8.0.0" + +"@svgr/core@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-8.1.0.tgz#41146f9b40b1a10beaf5cc4f361a16a3c1885e88" + integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA== + dependencies: + "@babel/core" "^7.21.3" + "@svgr/babel-preset" "8.1.0" + camelcase "^6.2.0" + cosmiconfig "^8.1.3" + snake-case "^3.0.4" + +"@svgr/hast-util-to-babel-ast@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz#6952fd9ce0f470e1aded293b792a2705faf4ffd4" + integrity sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q== + dependencies: + "@babel/types" "^7.21.3" + entities "^4.4.0" + +"@svgr/plugin-jsx@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz#96969f04a24b58b174ee4cd974c60475acbd6928" + integrity sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA== + dependencies: + "@babel/core" "^7.21.3" + "@svgr/babel-preset" "8.1.0" + "@svgr/hast-util-to-babel-ast" "8.0.0" + svg-parser "^2.0.4" + +"@svgr/plugin-svgo@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz#b115b7b967b564f89ac58feae89b88c3decd0f00" + integrity sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA== + dependencies: + cosmiconfig "^8.1.3" + deepmerge "^4.3.1" + svgo "^3.0.2" + +"@svgr/webpack@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-8.1.0.tgz#16f1b5346f102f89fda6ec7338b96a701d8be0c2" + integrity sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA== + dependencies: + "@babel/core" "^7.21.3" + "@babel/plugin-transform-react-constant-elements" "^7.21.3" + "@babel/preset-env" "^7.20.2" + "@babel/preset-react" "^7.18.6" + "@babel/preset-typescript" "^7.21.0" + "@svgr/core" "8.1.0" + "@svgr/plugin-jsx" "8.1.0" + "@svgr/plugin-svgo" "8.1.0" + +"@swc/counter@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" + integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== + +"@swc/helpers@0.5.5": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.5.tgz#12689df71bfc9b21c4f4ca00ae55f2f16c8b77c0" + integrity sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A== + dependencies: + "@swc/counter" "^0.1.3" + tslib "^2.4.0" + +"@tailwindcss/forms@^0.5.7": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.7.tgz#db5421f062a757b5f828bc9286ba626c6685e821" + integrity sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw== + dependencies: + mini-svg-data-uri "^1.2.3" + +"@tanstack/match-sorter-utils@^8.11.8": + version "8.19.4" + resolved "https://registry.yarnpkg.com/@tanstack/match-sorter-utils/-/match-sorter-utils-8.19.4.tgz#dacf772b5d94f4684f10dbeb2518cf72dccab8a5" + integrity sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg== + dependencies: + remove-accents "0.5.0" + +"@tanstack/react-table@^8.13.2": + version "8.20.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-table/-/react-table-8.20.1.tgz#bd2d549d8a18458fb8284025ce66a9b86176fa6b" + integrity sha512-PJK+07qbengObe5l7c8vCdtefXm8cyR4i078acWrHbdm8JKw1ES7YpmOtVt9ALUVEEFAHscdVpGRhRgikgFMbQ== + dependencies: + "@tanstack/table-core" "8.20.1" + +"@tanstack/react-virtual@^3.0.0-beta.60": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-virtual/-/react-virtual-3.10.1.tgz#e7b7dfc26b9b49db8f3099f29470a63a1cfc7044" + integrity sha512-h5kNeE+yQwspjl9E3sJ3UYQu/MuspNOBT5cVdc+NA0uU9B1XSkxbzp86teV3arMDVcQ4ESExqs4JyIirYAMcuA== + dependencies: + "@tanstack/virtual-core" "3.10.1" + +"@tanstack/table-core@8.20.1": + version "8.20.1" + resolved "https://registry.yarnpkg.com/@tanstack/table-core/-/table-core-8.20.1.tgz#74bfab10fa35bed51fa0bd2f3539a331d7e78f1b" + integrity sha512-5Ly5TIRHnWH7vSDell9B/OVyV380qqIJVg7H7R7jU4fPEmOD4smqAX7VRflpYI09srWR8aj5OLD2Ccs1pI5mTg== + +"@tanstack/virtual-core@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.10.1.tgz#a2312c6cfc6f0d8e3e9a93bb99f96552b82082af" + integrity sha512-JDi3wU1HIxuxx8BgD7Ix8IXlelCKdTJIh9c0qBs+QXHdix3mjMbkXI3wOq0TuCx1w1RGgzZue34QrM/NPdp/sw== + +"@testing-library/dom@^9.0.0": + version "9.3.4" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.4.tgz#50696ec28376926fec0a1bf87d9dbac5e27f60ce" + integrity sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^5.0.1" + aria-query "5.1.3" + chalk "^4.1.0" + dom-accessibility-api "^0.5.9" + lz-string "^1.5.0" + pretty-format "^27.0.2" + +"@testing-library/jest-dom@^6.4.2": + version "6.4.8" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.4.8.tgz#9c435742b20c6183d4e7034f2b329d562c079daa" + integrity sha512-JD0G+Zc38f5MBHA4NgxQMR5XtO5Jx9g86jqturNTt2WUfRmLDIY7iKkWHDCCTiDuFMre6nxAD5wHw9W5kI4rGw== + dependencies: + "@adobe/css-tools" "^4.4.0" + "@babel/runtime" "^7.9.2" + aria-query "^5.0.0" + chalk "^3.0.0" + css.escape "^1.5.1" + dom-accessibility-api "^0.6.3" + lodash "^4.17.21" + redent "^3.0.0" + +"@testing-library/react@^14.2.1": + version "14.3.1" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.3.1.tgz#29513fc3770d6fb75245c4e1245c470e4ffdd830" + integrity sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^9.0.0" + "@types/react-dom" "^18.0.0" + +"@testing-library/user-event@^14.5.2": + version "14.5.2" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.5.2.tgz#db7257d727c891905947bd1c1a99da20e03c2ebd" + integrity sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@tufjs/canonical-json@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" + integrity sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA== + +"@tufjs/models@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-2.0.1.tgz#e429714e753b6c2469af3212e7f320a6973c2812" + integrity sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg== + dependencies: + "@tufjs/canonical-json" "2.0.0" + minimatch "^9.0.4" + +"@tybys/wasm-util@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.9.0.tgz#3e75eb00604c8d6db470bf18c37b7d984a0e3355" + integrity sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw== + dependencies: + tslib "^2.4.0" + +"@types/accepts@^1.3.5": + version "1.3.7" + resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.7.tgz#3b98b1889d2b2386604c2bbbe62e4fb51e95b265" + integrity sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ== + dependencies: + "@types/node" "*" + +"@types/aria-query@^5.0.1": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708" + integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== + +"@types/bn.js@^5.1.1", "@types/bn.js@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" + integrity sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A== + dependencies: + "@types/node" "*" + +"@types/body-parser@*": + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/body-parser@1.19.2": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/cors@2.8.12": + version "2.8.12" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" + integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== + +"@types/d3-color@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-2.0.6.tgz#88a9a06afea2d3a400ea650a6c3e60e9bf9b0f2a" + integrity sha512-tbaFGDmJWHqnenvk3QGSvD3RVwr631BjKRD7Sc7VLRgrdX5mk5hTyoeBL6rXZaeoXzmZwIl1D2HPogEdt1rHBg== + +"@types/d3-delaunay@^5.3.0": + version "5.3.4" + resolved "https://registry.yarnpkg.com/@types/d3-delaunay/-/d3-delaunay-5.3.4.tgz#6440a78e48bbfc3652a2ec007a710e046c421a10" + integrity sha512-GEQuDXVKQvHulQ+ecKyCubOmVjXrifAj7VR26rWVAER/IbWemaT/Tmo84ESiTtoDghg5ILdMZH7pYXQEt/Vu9A== + +"@types/d3-format@^1.4.1": + version "1.4.5" + resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-1.4.5.tgz#6392303c2ca3c287c3a1a2046455cd0a0bd50bbe" + integrity sha512-mLxrC1MSWupOSncXN/HOlWUAAIffAEBaI4+PKy2uMPsKe4FNZlk7qrbTjmzJXITQQqBHivaks4Td18azgqnotA== + +"@types/d3-path@^2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-2.0.4.tgz#6b2893c23ec01788f79f7a6ec39eaaf9a6732af4" + integrity sha512-jjZVLBjEX4q6xneKMmv62UocaFJFOTQSb/1aTzs3m3ICTOFoVaqGBHpNLm/4dVi0/FTltfBKgmOK1ECj3/gGjA== + +"@types/d3-scale-chromatic@^2.0.0": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-2.0.4.tgz#7376660736efc734daf75228d7f08e9029cefe1d" + integrity sha512-OUgfg6wmoZVhs0/pV8HZhsMw7pYJnS6smfNK2S5ogMaPHfDUaTMu7JA5ssZrRupwf2vWI+haPAuUpsz+M1BOKA== + +"@types/d3-scale@^3.2.3": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-3.3.5.tgz#c89ff1550a4246f717e3c2e35deb35e183a338ba" + integrity sha512-YOpKj0kIEusRf7ofeJcSZQsvKbnTwpe1DUF+P2qsotqG53kEsjm7EzzliqQxMkAWdkZcHrg5rRhB4JiDOQPX+A== + dependencies: + "@types/d3-time" "^2" + +"@types/d3-shape@^2.0.0": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-2.1.7.tgz#7c3bd6a9c758b54ba495cab0575cb18359251123" + integrity sha512-HedHlfGHdwzKqX9+PiQVXZrdmGlwo7naoefJP7kCNk4Y7qcpQt1tUaoRa6qn0kbTdlaIHGO7111qLtb/6J8uuw== + dependencies: + "@types/d3-path" "^2" + +"@types/d3-time-format@^2.3.1": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-2.3.4.tgz#544af5184df8b3fc4d9b42b14058789acee2905e" + integrity sha512-xdDXbpVO74EvadI3UDxjxTdR6QIxm1FKzEA/+F8tL4GWWUg/hgvBqf6chql64U5A9ZUGWo7pEu4eNlyLwbKdhg== + +"@types/d3-time-format@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-3.0.4.tgz#f972bdd7be1048184577cf235a44721a78c6bb4b" + integrity sha512-or9DiDnYI1h38J9hxKEsw513+KVuFbEVhl7qdxcaudoiqWWepapUen+2vAriFGexr6W5+P4l9+HJrB39GG+oRg== + +"@types/d3-time@^1.1.1": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-1.1.4.tgz#20da4b75c537a940e7319b75717c67a2e499515a" + integrity sha512-JIvy2HjRInE+TXOmIGN5LCmeO0hkFZx5f9FZ7kiN+D+YTcc8pptsiLiuHsvwxwC7VVKmJ2ExHUgNlAiV7vQM9g== + +"@types/d3-time@^2": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-2.1.4.tgz#43587aa57d565ab60a1d2201edeebc497d5c1252" + integrity sha512-BTfLsxTeo7yFxI/haOOf1ZwJ6xKgQLT9dCp+EcmQv87Gox6X+oKl4mLKfO6fnWm3P22+A6DknMNEZany8ql2Rw== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/express-serve-static-core@4.17.31": + version "4.17.31" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" + integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express-serve-static-core@^4.17.18": + version "4.19.5" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz#218064e321126fcf9048d1ca25dd2465da55d9c6" + integrity sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@4.17.14": + version "4.17.14" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" + integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/glob@^7.1.1": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/hoist-non-react-statics@^3.3.1": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz#dab7867ef789d87e2b4b0003c9d65c49cc44a494" + integrity sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg== + dependencies: + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^29.5.12": + version "29.5.12" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" + integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/js-cookie@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-3.0.6.tgz#a04ca19e877687bd449f5ad37d33b104b71fdf95" + integrity sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ== + +"@types/js-yaml@^4.0.0": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.9.tgz#cd82382c4f902fed9691a2ed79ec68c5898af4c2" + integrity sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg== + +"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/jsonwebtoken@^9.0.3": + version "9.0.6" + resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.6.tgz#d1af3544d99ad992fb6681bbe60676e06b032bd3" + integrity sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw== + dependencies: + "@types/node" "*" + +"@types/lodash@^4.14.175": + version "4.17.7" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.7.tgz#2f776bcb53adc9e13b2c0dfd493dfcbd7de43612" + integrity sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA== + +"@types/long@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + +"@types/minimatch@*": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/minimatch@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/minimist@^1.2.0": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== + +"@types/node@*": + version "22.4.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.4.1.tgz#9b595d292c65b94c20923159e2ce947731b6fdce" + integrity sha512-1tbpb9325+gPnKK0dMm+/LMriX0vKxf6RnB0SZUqfyVkQ4fMgUSySqhxE/y8Jvs4NyF1yHzTfG9KlnkIODxPKg== + dependencies: + undici-types "~6.19.2" + +"@types/node@18.15.13": + version "18.15.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" + integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== + +"@types/node@^10.1.0": + version "10.17.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + +"@types/node@^20.11.24", "@types/node@^20.12.7": + version "20.16.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.16.1.tgz#0b44b15271d0e2191ca68faf1fbe506e06aed732" + integrity sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ== + dependencies: + undici-types "~6.19.2" + +"@types/normalize-package-data@^2.4.0": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== + +"@types/prop-types@*", "@types/prop-types@^15.7.2": + version "15.7.12" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + +"@types/qs@*": + version "6.9.15" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" + integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== + +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + +"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.20": + version "18.3.0" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" + integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== + dependencies: + "@types/react" "*" + +"@types/react-lifecycles-compat@^3.0.1": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#87eb56ce6cce9e9db4557825ab559d90f72995dc" + integrity sha512-1CM48Y9ztL5S4wjt7DK2izrkgPp/Ql0zCJu/vHzhgl7J+BD4UbSGjHN1M2TlePms472JvOazUtAO1/G3oFZqIQ== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^18.2.63": + version "18.3.4" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.4.tgz#dfdd534a1d081307144c00e325c06e00312c93a3" + integrity sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + +"@types/send@*": + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-static@*": + version "1.15.7" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/stylis@4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@types/stylis/-/stylis-4.2.5.tgz#1daa6456f40959d06157698a653a9ab0a70281df" + integrity sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw== + +"@types/trusted-types@^2.0.2": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== + +"@types/ws@^8.0.0": + version "8.5.12" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.12.tgz#619475fe98f35ccca2a2f6c137702d85ec247b7e" + integrity sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.33" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^7.1.1": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3" + integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/type-utils" "7.18.0" + "@typescript-eslint/utils" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" + graphemer "^1.4.0" + ignore "^5.3.1" + natural-compare "^1.4.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/parser@^6.4.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" + integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== + dependencies: + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" + integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + +"@typescript-eslint/scope-manager@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83" + integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA== + dependencies: + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" + +"@typescript-eslint/type-utils@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b" + integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA== + dependencies: + "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/utils" "7.18.0" + debug "^4.3.4" + ts-api-utils "^1.3.0" + +"@typescript-eslint/types@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" + integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== + +"@typescript-eslint/types@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" + integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== + +"@typescript-eslint/typescript-estree@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" + integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "9.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/typescript-estree@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931" + integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA== + dependencies: + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/utils@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f" + integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/typescript-estree" "7.18.0" + +"@typescript-eslint/visitor-keys@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" + integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== + dependencies: + "@typescript-eslint/types" "6.21.0" + eslint-visitor-keys "^3.4.1" + +"@typescript-eslint/visitor-keys@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7" + integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg== + dependencies: + "@typescript-eslint/types" "7.18.0" + eslint-visitor-keys "^3.4.3" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@vercel/og@^0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@vercel/og/-/og-0.6.2.tgz#228b064451c6ea4e3900e2c94404bec57f7fd172" + integrity sha512-OTe0KE37F5Y2eTys6eMnfopC+P4qr2ooXUTFyFPTplYSPwowmFk/HLD1FXtbKLjqsIH0SgekcJWad+C5uX4nkg== + dependencies: + "@resvg/resvg-wasm" "2.4.0" + satori "0.10.9" + yoga-wasm-web "0.3.3" + +"@vladfrangu/async_event_emitter@^2.2.4": + version "2.4.5" + resolved "https://registry.yarnpkg.com/@vladfrangu/async_event_emitter/-/async_event_emitter-2.4.5.tgz#7bc35026fdc3398a5e1aac801edd21b28cdf4cfa" + integrity sha512-J7T3gUr3Wz0l7Ni1f9upgBZ7+J22/Q1B7dl0X6fG+fTsD+H+31DIosMHj4Um1dWQwqbcQ3oQf+YS2foYkDc9cQ== + +"@whatwg-node/events@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.0.3.tgz#13a65dd4f5893f55280f766e29ae48074927acad" + integrity sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA== + +"@whatwg-node/fetch@^0.8.0": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.8.8.tgz#48c6ad0c6b7951a73e812f09dd22d75e9fa18cae" + integrity sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg== + dependencies: + "@peculiar/webcrypto" "^1.4.0" + "@whatwg-node/node-fetch" "^0.3.6" + busboy "^1.6.0" + urlpattern-polyfill "^8.0.0" + web-streams-polyfill "^3.2.1" + +"@whatwg-node/fetch@^0.9.0": + version "0.9.20" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.9.20.tgz#f217153c173d9632a0f76f995513dfc435ff2778" + integrity sha512-bayE8tJBVw3QRg5vDqGIOfBmdxCV6HHUqCxMhZ1pOHukUk1TrfNH3tViivJErhmtSN0bbvjWaBQpJllAOpgSxA== + dependencies: + "@whatwg-node/node-fetch" "^0.5.22" + urlpattern-polyfill "^10.0.0" + +"@whatwg-node/node-fetch@^0.3.6": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz#e28816955f359916e2d830b68a64493124faa6d0" + integrity sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA== + dependencies: + "@whatwg-node/events" "^0.0.3" + busboy "^1.6.0" + fast-querystring "^1.1.1" + fast-url-parser "^1.1.3" + tslib "^2.3.1" + +"@whatwg-node/node-fetch@^0.5.22": + version "0.5.22" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.5.22.tgz#5fce9505f333a9ce463b6b5ff86223ffd19e3ace" + integrity sha512-ccjjD+JCaylDGGcbJ69jFK2FaoGobpyOiDr2FnzSpcEss20MJzfJAiUIrpglWADplyB2AwfunMM7ph3IpPArhw== + dependencies: + "@kamilkisiela/fast-url-parser" "^1.1.4" + busboy "^1.6.0" + fast-querystring "^1.1.1" + tslib "^2.6.3" + +"@wry/caches@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@wry/caches/-/caches-1.0.1.tgz#8641fd3b6e09230b86ce8b93558d44cf1ece7e52" + integrity sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA== + dependencies: + tslib "^2.3.0" + +"@wry/context@^0.7.0": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.4.tgz#e32d750fa075955c4ab2cfb8c48095e1d42d5990" + integrity sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ== + dependencies: + tslib "^2.3.0" + +"@wry/equality@^0.5.6": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.7.tgz#72ec1a73760943d439d56b7b1e9985aec5d497bb" + integrity sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw== + dependencies: + tslib "^2.3.0" + +"@wry/trie@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.4.3.tgz#077d52c22365871bf3ffcbab8e95cb8bc5689af4" + integrity sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w== + dependencies: + tslib "^2.3.0" + +"@wry/trie@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.5.0.tgz#11e783f3a53f6e4cd1d42d2d1323f5bc3fa99c94" + integrity sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA== + dependencies: + tslib "^2.3.0" + +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + +"@yarnpkg/parsers@3.0.0-rc.46": + version "3.0.0-rc.46" + resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz#03f8363111efc0ea670e53b0282cd3ef62de4e01" + integrity sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q== + dependencies: + js-yaml "^3.10.0" + tslib "^2.4.0" + +"@zkochan/js-yaml@0.0.7": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz#4b0cb785220d7c28ce0ec4d0804deb5d821eae89" + integrity sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ== + dependencies: + argparse "^2.0.1" + +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abbrev@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" + integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== + +accepts@^1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^8.8.2, acorn@^8.9.0: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + +add-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" + integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== + +adler-32@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/adler-32/-/adler-32-1.3.1.tgz#1dbf0b36dda0012189a32b3679061932df1821e2" + integrity sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A== + +aes-js@4.0.0-beta.5: + version "4.0.0-beta.5" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" + integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== + +agent-base@^7.0.2, agent-base@^7.1.0, agent-base@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" + integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== + dependencies: + debug "^4.3.4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.6.0: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +ansi-align@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +apg-js@^4.3.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/apg-js/-/apg-js-4.4.0.tgz#09dcecab0731fbde233b9f2352fdd2d07e56b2cf" + integrity sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q== + +apollo-datasource@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-3.3.2.tgz#5711f8b38d4b7b53fb788cb4dbd4a6a526ea74c8" + integrity sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + apollo-server-env "^4.2.1" + +apollo-reporting-protobuf@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz#6edd31f09d4a3704d9e808d1db30eca2229ded26" + integrity sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog== + dependencies: + "@apollo/protobufjs" "1.2.6" + +apollo-server-core@^3.13.0: + version "3.13.0" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-3.13.0.tgz#ad6601fbb34cc97eedca27a9fb0b5738d11cd27d" + integrity sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + "@apollo/utils.logger" "^1.0.0" + "@apollo/utils.usagereporting" "^1.0.0" + "@apollographql/apollo-tools" "^0.5.3" + "@apollographql/graphql-playground-html" "1.6.29" + "@graphql-tools/mock" "^8.1.2" + "@graphql-tools/schema" "^8.0.0" + "@josephg/resolvable" "^1.0.0" + apollo-datasource "^3.3.2" + apollo-reporting-protobuf "^3.4.0" + apollo-server-env "^4.2.1" + apollo-server-errors "^3.3.1" + apollo-server-plugin-base "^3.7.2" + apollo-server-types "^3.8.0" + async-retry "^1.2.1" + fast-json-stable-stringify "^2.1.0" + graphql-tag "^2.11.0" + loglevel "^1.6.8" + lru-cache "^6.0.0" + node-abort-controller "^3.0.1" + sha.js "^2.4.11" + uuid "^9.0.0" + whatwg-mimetype "^3.0.0" + +apollo-server-env@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-4.2.1.tgz#ea5b1944accdbdba311f179e4dfaeca482c20185" + integrity sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g== + dependencies: + node-fetch "^2.6.7" + +apollo-server-errors@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655" + integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== + +apollo-server-express@^3.13.0: + version "3.13.0" + resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-3.13.0.tgz#0d8d9bbba3b8b8264912d215f63fd44e74d5f42a" + integrity sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g== + dependencies: + "@types/accepts" "^1.3.5" + "@types/body-parser" "1.19.2" + "@types/cors" "2.8.12" + "@types/express" "4.17.14" + "@types/express-serve-static-core" "4.17.31" + accepts "^1.3.5" + apollo-server-core "^3.13.0" + apollo-server-types "^3.8.0" + body-parser "^1.19.0" + cors "^2.8.5" + parseurl "^1.3.3" + +apollo-server-plugin-base@^3.6.3, apollo-server-plugin-base@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz#c19cd137bc4c993ba2490ba2b571b0f3ce60a0cd" + integrity sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw== + dependencies: + apollo-server-types "^3.8.0" + +apollo-server-plugin-response-cache@~3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-response-cache/-/apollo-server-plugin-response-cache-3.7.1.tgz#ee48637ff487880d97fb7311838e6e9eea01233e" + integrity sha512-3FHwwySf1kQl8dGC+2E08LtDeFGUOeqckLchAD1REYx1vwMZbGhmEIwaNezjXwxkTM5Y7l38n0vQTka6YoQN7w== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + apollo-server-plugin-base "^3.6.3" + apollo-server-types "^3.6.3" + +apollo-server-types@^3.6.3, apollo-server-types@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-3.8.0.tgz#d976b6967878681f715fe2b9e4dad9ba86b1346f" + integrity sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + "@apollo/utils.logger" "^1.0.0" + apollo-reporting-protobuf "^3.4.0" + apollo-server-env "^4.2.1" + +app-root-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.1.0.tgz#5971a2fc12ba170369a7a1ef018c71e6e47c2e86" + integrity sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA== + +aproba@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@5.1.3, aria-query@~5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" + +aria-query@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== + +array-includes@^3.1.6, array-includes@^3.1.7, array-includes@^3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + is-string "^1.0.7" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== + +array.prototype.findlast@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" + integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.findlastindex@^1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.tosorted@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz#fe954678ff53034e717ea3352a03f0b0b86f7ffc" + integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-shim-unscopables "^1.0.2" + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +asn1js@^3.0.1, asn1js@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" + integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== + dependencies: + pvtsutils "^1.3.2" + pvutils "^1.1.3" + tslib "^2.4.0" + +ast-types-flow@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" + integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-retry@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== + dependencies: + retry "0.13.1" + +async@^3.2.3, async@^3.2.4: + version "3.2.6" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +auto-bind@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb" + integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== + +autoprefixer@^10.4.18: + version "10.4.20" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" + integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== + dependencies: + browserslist "^4.23.3" + caniuse-lite "^1.0.30001646" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.0.1" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +axe-core@^4.9.1: + version "4.10.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59" + integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g== + +axios@^1.6.0, axios@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" + integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +axobject-query@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" + integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== + dependencies: + deep-equal "^2.0.5" + +b4a@^1.0.1: + version "1.6.6" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.6.tgz#a4cc349a3851987c3c4ac2d7785c18744f6da9ba" + integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg== + +babel-loader@^8.2.5: + version "8.3.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" + integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^2.0.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.11" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz#30320dfe3ffe1a336c15afdcdafd6fd615b25e33" + integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.2" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.10.4: + version "0.10.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" + integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + core-js-compat "^3.38.0" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz#addc47e240edd1da1058ebda03021f382bba785e" + integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + +babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: + version "7.0.0-beta.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" + integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== + +babel-preset-fbjs@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" + integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== + dependencies: + "@babel/plugin-proposal-class-properties" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-syntax-class-properties" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-block-scoped-functions" "^7.0.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.0.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.0.0" + "@babel/plugin-transform-flow-strip-types" "^7.0.0" + "@babel/plugin-transform-for-of" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-member-expression-literals" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-property-literals" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" + integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== + +base16@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" + integrity sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ== + +base64-js@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" + integrity sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw== + +base64-js@^1.2.0, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +before-after-hook@^2.2.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bin-links@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.4.tgz#c3565832b8e287c85f109a02a17027d152a58a63" + integrity sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA== + dependencies: + cmd-shim "^6.0.0" + npm-normalize-package-bin "^3.0.0" + read-cmd-shim "^4.0.0" + write-file-atomic "^5.0.0" + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bintrees@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.2.tgz#49f896d6e858a4a499df85c38fb399b9aff840f8" + integrity sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw== + +bl@^4.0.3, bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +blake2b-wasm@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz#9115649111edbbd87eb24ce7c04b427e4e2be5be" + integrity sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w== + dependencies: + b4a "^1.0.1" + nanoassert "^2.0.0" + +blake2b@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/blake2b/-/blake2b-2.1.4.tgz#817d278526ddb4cd673bfb1af16d1ad61e393ba3" + integrity sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A== + dependencies: + blake2b-wasm "^2.4.0" + nanoassert "^2.0.0" + +bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +body-parser@1.20.2, body-parser@^1.19.0: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +boxen@^5.0.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browserslist@^4.23.1, browserslist@^4.23.3: + version "4.23.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" + integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== + dependencies: + caniuse-lite "^1.0.30001646" + electron-to-chromium "^1.5.4" + node-releases "^2.0.18" + update-browserslist-db "^1.1.0" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +btoa-lite@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" + integrity sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA== + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bufferutil@^4.0.1: + version "4.0.8" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea" + integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== + dependencies: + node-gyp-build "^4.3.0" + +builtin-modules@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +busboy@1.6.0, busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +byte-size@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-8.1.1.tgz#3424608c62d59de5bfda05d31e0313c6174842ae" + integrity sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacache@^18.0.0, cacache@^18.0.3: + version "18.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.4.tgz#4601d7578dadb59c66044e157d02a3314682d6a5" + integrity sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ== + dependencies: + "@npmcli/fs" "^3.1.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^10.0.1" + minipass "^7.0.3" + minipass-collect "^2.0.1" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + p-map "^4.0.0" + ssri "^10.0.0" + tar "^6.1.11" + unique-filename "^3.0.0" + +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0, camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +camelize@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" + integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== + +caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001646: + version "1.0.30001651" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz#52de59529e8b02b1aedcaaf5c05d9e23c0c28138" + integrity sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg== + +canvas-renderer@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/canvas-renderer/-/canvas-renderer-2.2.1.tgz#c1d131f78a9799aca8af9679ad0a005052b65550" + integrity sha512-RrBgVL5qCEDIXpJ6NrzyRNoTnXxYarqm/cS/W6ERhUJts5UQtt/XPEosGN3rqUkZ4fjBArlnCbsISJ+KCFnIAg== + dependencies: + "@types/node" "*" + +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + +cfb@~1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cfb/-/cfb-1.2.2.tgz#94e687628c700e5155436dac05f74e08df23bc44" + integrity sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA== + dependencies: + adler-32 "~1.3.0" + crc-32 "~1.2.0" + +chalk-template@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-1.1.0.tgz#ffc55db6dd745e9394b85327c8ac8466edb7a7b1" + integrity sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg== + dependencies: + chalk "^5.2.0" + +chalk@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +change-case-all@1.0.15: + version "1.0.15" + resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.15.tgz#de29393167fc101d646cd76b0ef23e27d09756ad" + integrity sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ== + dependencies: + change-case "^4.1.2" + is-lower-case "^2.0.2" + is-upper-case "^2.0.2" + lower-case "^2.0.2" + lower-case-first "^2.0.2" + sponge-case "^1.0.1" + swap-case "^2.0.2" + title-case "^3.0.3" + upper-case "^2.0.2" + upper-case-first "^2.0.2" + +change-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + camel-case "^4.1.2" + capital-case "^1.0.4" + constant-case "^3.0.4" + dot-case "^3.0.4" + header-case "^2.0.4" + no-case "^3.0.4" + param-case "^3.0.4" + pascal-case "^3.1.2" + path-case "^3.0.4" + sentence-case "^3.0.4" + snake-case "^3.0.4" + tslib "^2.0.3" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +ci-info@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.0.0.tgz#65466f8b280fc019b9f50a5388115d17a63a44f2" + integrity sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg== + +classnames@^2.2.5: + version "2.5.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +clean-webpack-plugin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz#72947d4403d452f38ed61a9ff0ada8122aacd729" + integrity sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w== + dependencies: + del "^4.1.1" + +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +cli-cursor@3.1.0, cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-highlight@^2.1.11: + version "2.1.11" + resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf" + integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== + dependencies: + chalk "^4.0.0" + highlight.js "^10.7.1" + mz "^2.4.0" + parse5 "^5.1.1" + parse5-htmlparser2-tree-adapter "^6.0.0" + yargs "^16.0.0" + +cli-spinners@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" + integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== + +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +client-only@0.0.1, client-only@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-deep@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +cluster-key-slot@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" + integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== + +cmd-shim@6.0.3, cmd-shim@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.3.tgz#c491e9656594ba17ac83c4bd931590a9d6e26033" + integrity sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA== + +codepage@~1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/codepage/-/codepage-1.15.0.tgz#2e00519024b39424ec66eeb3ec07227e692618ab" + integrity sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.1.4, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-support@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +colord@^2.9.3: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.16: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +columnify@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" + integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== + dependencies: + strip-ansi "^6.0.1" + wcwidth "^1.0.0" + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^11.0.0, commander@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + +commander@^2.20.0, commander@^2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +common-ancestor-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" + integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== + +common-tags@1.8.2, common-tags@^1.8.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +compare-func@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== + dependencies: + array-ify "^1.0.0" + dot-prop "^5.1.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +constant-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +conventional-changelog-angular@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a" + integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== + dependencies: + compare-func "^2.0.0" + +conventional-changelog-core@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-5.0.1.tgz#3c331b155d5b9850f47b4760aeddfc983a92ad49" + integrity sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A== + dependencies: + add-stream "^1.0.0" + conventional-changelog-writer "^6.0.0" + conventional-commits-parser "^4.0.0" + dateformat "^3.0.3" + get-pkg-repo "^4.2.1" + git-raw-commits "^3.0.0" + git-remote-origin-url "^2.0.0" + git-semver-tags "^5.0.0" + normalize-package-data "^3.0.3" + read-pkg "^3.0.0" + read-pkg-up "^3.0.0" + +conventional-changelog-preset-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz#14975ef759d22515d6eabae6396c2ae721d4c105" + integrity sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA== + +conventional-changelog-writer@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz#d8d3bb5e1f6230caed969dcc762b1c368a8f7b01" + integrity sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ== + dependencies: + conventional-commits-filter "^3.0.0" + dateformat "^3.0.3" + handlebars "^4.7.7" + json-stringify-safe "^5.0.1" + meow "^8.1.2" + semver "^7.0.0" + split "^1.0.1" + +conventional-commits-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz#bf1113266151dd64c49cd269e3eb7d71d7015ee2" + integrity sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q== + dependencies: + lodash.ismatch "^4.4.0" + modify-values "^1.0.1" + +conventional-commits-parser@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz#02ae1178a381304839bce7cea9da5f1b549ae505" + integrity sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg== + dependencies: + JSONStream "^1.3.5" + is-text-path "^1.0.1" + meow "^8.1.2" + split2 "^3.2.2" + +conventional-recommended-bump@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz#ec01f6c7f5d0e2491c2d89488b0d757393392424" + integrity sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA== + dependencies: + concat-stream "^2.0.0" + conventional-changelog-preset-loader "^3.0.0" + conventional-commits-filter "^3.0.0" + conventional-commits-parser "^4.0.0" + git-raw-commits "^3.0.0" + git-semver-tags "^5.0.0" + meow "^8.1.2" + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + +cookie@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +copy-anything@^3.0.2: + version "3.0.5" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-3.0.5.tgz#2d92dce8c498f790fa7ad16b01a1ae5a45b020a0" + integrity sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w== + dependencies: + is-what "^4.1.8" + +copy-to-clipboard@^3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" + integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== + dependencies: + toggle-selection "^1.0.6" + +core-js-compat@^3.37.1, core-js-compat@^3.38.0: + version "3.38.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.38.1.tgz#2bc7a298746ca5a7bcb9c164bcb120f2ebc09a09" + integrity sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw== + dependencies: + browserslist "^4.23.3" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@^8.1.3, cosmiconfig@^8.2.0: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== + dependencies: + env-paths "^2.2.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + +crc-32@~1.2.0, crc-32@~1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +cross-fetch@^3.1.5: + version "3.1.8" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" + integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== + dependencies: + node-fetch "^2.6.12" + +cross-inspect@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cross-inspect/-/cross-inspect-1.0.1.tgz#15f6f65e4ca963cf4cc1a2b5fef18f6ca328712b" + integrity sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A== + dependencies: + tslib "^2.4.0" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +css-background-parser@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/css-background-parser/-/css-background-parser-0.1.0.tgz#48a17f7fe6d4d4f1bca3177ddf16c5617950741b" + integrity sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA== + +css-box-shadow@1.0.0-3: + version "1.0.0-3" + resolved "https://registry.yarnpkg.com/css-box-shadow/-/css-box-shadow-1.0.0-3.tgz#9eaeb7140947bf5d649fc49a19e4bbaa5f602713" + integrity sha512-9jaqR6e7Ohds+aWwmhe6wILJ99xYQbfmK9QQB9CcMjDbTxPZjwEmUQpU91OG05Xgm8BahT5fW+svbsQGjS/zPg== + +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-to-react-native@3.2.0, css-to-react-native@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32" + integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssfilter@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" + integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== + +cssfontparser@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3" + integrity sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg== + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +csstype@3.1.3, csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +cuint@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" + integrity sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw== + +d3-array@2, d3-array@^2.3.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + +"d3-color@1 - 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e" + integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ== + +"d3-color@1 - 3", d3-color@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-delaunay@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-5.3.0.tgz#b47f05c38f854a4e7b3cea80e0bb12e57398772d" + integrity sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w== + dependencies: + delaunator "4" + +"d3-format@1 - 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-2.0.0.tgz#a10bcc0f986c372b729ba447382413aabf5b0767" + integrity sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA== + +d3-format@^1.4.4: + version "1.4.5" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" + integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== + +"d3-interpolate@1 - 2", "d3-interpolate@1.2.0 - 2": + version "2.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz#98be499cfb8a3b94d4ff616900501a64abc91163" + integrity sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ== + dependencies: + d3-color "1 - 2" + +"d3-interpolate@1 - 3", d3-interpolate@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +d3-path@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +d3-scale-chromatic@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-2.0.0.tgz#c13f3af86685ff91323dc2f0ebd2dabbd72d8bab" + integrity sha512-LLqy7dJSL8yDy7NRmf6xSlsFZ6zYvJ4BcWFE4zBrOPnQERv9zj24ohnXKRbyi9YHnYV+HN1oEO3iFK971/gkzA== + dependencies: + d3-color "1 - 2" + d3-interpolate "1 - 2" + +d3-scale-chromatic@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#34c39da298b23c20e02f1a4b239bd0f22e7f1314" + integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale@^3.2.3: + version "3.3.0" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.3.0.tgz#28c600b29f47e5b9cd2df9749c206727966203f3" + integrity sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ== + dependencies: + d3-array "^2.3.0" + d3-format "1 - 2" + d3-interpolate "1.2.0 - 2" + d3-time "^2.1.1" + d3-time-format "2 - 3" + +d3-shape@^1.3.5: + version "1.3.7" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +"d3-time-format@2 - 3", d3-time-format@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-3.0.0.tgz#df8056c83659e01f20ac5da5fdeae7c08d5f1bb6" + integrity sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag== + dependencies: + d3-time "1 - 2" + +"d3-time@1 - 2", d3-time@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-2.1.1.tgz#e9d8a8a88691f4548e68ca085e5ff956724a6682" + integrity sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ== + dependencies: + d3-array "2" + +d3-time@^1.0.11: + version "1.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" + integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== + +d@1, d@^1.0.1, d@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de" + integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== + dependencies: + es5-ext "^0.10.64" + type "^2.7.2" + +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +dataloader@^2.1.0, dataloader@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" + integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== + +dateformat@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + +dayjs@^1.11.10, dayjs@^1.11.9: + version "1.11.13" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== + +debounce@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug@2.6.9, debug@^2.2.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + dependencies: + ms "2.1.2" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decamelize-keys@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +dedent@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" + integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== + +deep-equal@^2.0.5, deep-equal@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1" + integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.5" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.2" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.13" + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" + integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== + +deepmerge@^4.2.2, deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +delaunator@4: + version "4.0.1" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-4.0.1.tgz#3d779687f57919a7a418f8ab947d3bddb6846957" + integrity sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +denque@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +dependency-graph@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" + integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== + +deprecation@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-browser@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" + integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== + +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== + +detect-indent@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +discord-api-types@0.37.83: + version "0.37.83" + resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.83.tgz#a22a799729ceded8176ea747157837ddf4708b1f" + integrity sha512-urGGYeWtWNYMKnYlZnOnDHm8fVRffQs3U0SpE8RHeiuLKb/u92APS8HoQnPTFbnXmY1vVnXjXO4dOxcAn3J+DA== + +discord-api-types@^0.37.77: + version "0.37.96" + resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.96.tgz#033ac9ae5b50b418c8cda6bf1eb784a5fbe23029" + integrity sha512-3HS1xf0GZUs98RrRIo4HRCU7sSnTDxQXral8oltYjhXGdQtI+JjLGpA8JF9gKfO9V6hUHgFHPIMWV8KIQDAaFg== + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-accessibility-api@^0.5.9: + version "0.5.16" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" + integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== + +dom-accessibility-api@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz#993e925cc1d73f2c662e7d75dd5a5445259a8fd8" + integrity sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w== + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@~11.0.6: + version "11.0.6" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-11.0.6.tgz#f2c840fd924d7c77a94eff98f153331d876882d3" + integrity sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g== + dependencies: + dotenv "^16.4.4" + +dotenv@^16.0.0, dotenv@^16.0.3, dotenv@^16.3.1, dotenv@^16.4.4, dotenv@^16.4.5, dotenv@~16.4.5: + version "16.4.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== + +dotenv@^8.2.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== + +dset@^3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.3.tgz#c194147f159841148e8e34ca41f638556d9542d2" + integrity sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ== + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +ejs@^3.1.6, ejs@^3.1.7: + version "3.1.10" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" + integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== + dependencies: + jake "^10.8.5" + +electron-to-chromium@^1.5.4: + version "1.5.12" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.12.tgz#ee31756eaa2e06f2aa606f170b7ad06dd402b4e4" + integrity sha512-tIhPkdlEoCL1Y+PToq3zRNehUaKp3wBX/sr7aclAWdIWjvqAe/Im/H0SiCM4c1Q8BLPHCdoJTol+ZblflydehA== + +email-addresses@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-5.0.0.tgz#7ae9e7f58eef7d5e3e2c2c2d3ea49b78dc854fa6" + integrity sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw== + +emoji-regex@^10.2.1: + version "10.3.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" + integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.1.0, end-of-stream@^1.4.1, end-of-stream@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^5.7.0: + version "5.17.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" + integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquirer@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +entities@^4.2.0, entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +env-paths@^2.2.0, env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +envinfo@7.13.0: + version "7.13.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.13.0.tgz#81fbb81e5da35d74e814941aeab7c325a606fb31" + integrity sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-iterator-helpers@^1.0.19: + version "1.0.19" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz#117003d0e5fec237b4b5c08aded722e0c6d50ca8" + integrity sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.3" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + iterator.prototype "^1.1.2" + safe-array-concat "^1.1.2" + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.62, es5-ext@^0.10.63, es5-ext@^0.10.64, es5-ext@~0.10.14: + version "0.10.64" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714" + integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + esniff "^2.0.1" + next-tick "^1.1.0" + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c" + integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== + dependencies: + d "^1.0.2" + ext "^1.7.0" + +escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-prettier@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== + +eslint-config-standard-with-typescript@^43.0.1: + version "43.0.1" + resolved "https://registry.yarnpkg.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-43.0.1.tgz#977862d7d41b0e1f27f399137bbf7b2e017037ff" + integrity sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA== + dependencies: + "@typescript-eslint/parser" "^6.4.0" + eslint-config-standard "17.1.0" + +eslint-config-standard@17.1.0: + version "17.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975" + integrity sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q== + +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-module-utils@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" + integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== + dependencies: + debug "^3.2.7" + +eslint-plugin-import@^2.29.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + dependencies: + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" + +eslint-plugin-jsx-a11y@^6.8.0: + version "6.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz#67ab8ff460d4d3d6a0b4a570e9c1670a0a8245c8" + integrity sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g== + dependencies: + aria-query "~5.1.3" + array-includes "^3.1.8" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "^4.9.1" + axobject-query "~3.1.1" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + es-iterator-helpers "^1.0.19" + hasown "^2.0.2" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" + minimatch "^3.1.2" + object.fromentries "^2.0.8" + safe-regex-test "^1.0.3" + string.prototype.includes "^2.0.0" + +eslint-plugin-prettier@^5.1.3: + version "5.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz#d1c8f972d8f60e414c25465c163d16f209411f95" + integrity sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw== + dependencies: + prettier-linter-helpers "^1.0.0" + synckit "^0.9.1" + +eslint-plugin-promise@^6.1.1: + version "6.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz#acd3fd7d55cead7a10f92cf698f36c0aafcd717a" + integrity sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ== + +eslint-plugin-react-hooks@^4.6.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596" + integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== + +eslint-plugin-react@^7.34.0: + version "7.35.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz#00b1e4559896710e58af6358898f2ff917ea4c41" + integrity sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA== + dependencies: + array-includes "^3.1.8" + array.prototype.findlast "^1.2.5" + array.prototype.flatmap "^1.3.2" + array.prototype.tosorted "^1.1.4" + doctrine "^2.1.0" + es-iterator-helpers "^1.0.19" + estraverse "^5.3.0" + hasown "^2.0.2" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.8" + object.fromentries "^2.0.8" + object.values "^1.2.0" + prop-types "^15.8.1" + resolve "^2.0.0-next.5" + semver "^6.3.1" + string.prototype.matchall "^4.0.11" + string.prototype.repeat "^1.0.0" + +eslint-plugin-tailwindcss@^3.14.3: + version "3.17.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.17.4.tgz#363d2a5d15e80b4cb1bb67054430a8a6e562c014" + integrity sha512-gJAEHmCq2XFfUP/+vwEfEJ9igrPeZFg+skeMtsxquSQdxba9XRk5bn0Bp9jxG1VV9/wwPKi1g3ZjItu6MIjhNg== + dependencies: + fast-glob "^3.2.5" + postcss "^8.4.4" + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.57.0: + version "8.57.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +esniff@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" + integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + event-emitter "^0.3.5" + type "^2.7.2" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eth-rpc-errors@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz#6ddb6190a4bf360afda82790bb7d9d5e724f423a" + integrity sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg== + dependencies: + fast-safe-stringify "^2.0.6" + +ethereum-blockies-base64@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ethereum-blockies-base64/-/ethereum-blockies-base64-1.0.2.tgz#4aebca52142bf4d16a3144e6e2b59303e39ed2b3" + integrity sha512-Vg2HTm7slcWNKaRhCUl/L3b4KrB8ohQXdd5Pu3OI897EcR6tVRvUqdTwAyx+dnmoDzj8e2bwBLDQ50ByFmcz6w== + dependencies: + pnglib "0.0.1" + +ethers@^6.11.1: + version "6.13.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.2.tgz#4b67d4b49e69b59893931a032560999e5e4419fe" + integrity sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "18.15.13" + aes-js "4.0.0-beta.5" + tslib "2.4.0" + ws "8.17.1" + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +execa@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" + integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +expect@^29.0.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + +exponential-backoff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + +express@^4.18.2: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extension-port-stream@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/extension-port-stream/-/extension-port-stream-2.1.1.tgz#ec11f2a5ed95655d8c40805d7cb0c39939ee9ef4" + integrity sha512-qknp5o5rj2J9CRKfVB8KJr+uXQlrojNZzdESUPhKYLXf97TPcGf6qWWKmpsNNtUyOdzFhab1ON0jzouNxHHvow== + dependencies: + webextension-polyfill ">=0.10.0 <1.0" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extract-files@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a" + integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ== + +fast-decode-uri-component@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" + integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^3.2.5, fast-glob@^3.2.9, fast-glob@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-querystring@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.2.tgz#a6d24937b4fc6f791b4ee31dcb6f53aeafb89f53" + integrity sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg== + dependencies: + fast-decode-uri-component "^1.0.1" + +fast-safe-stringify@^2.0.6: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fast-uri@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" + integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== + +fast-url-parser@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ== + dependencies: + punycode "^1.3.2" + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +faunadb@^4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/faunadb/-/faunadb-4.8.0.tgz#7adc5312dd5a508942ba1ad567c869e4f874b177" + integrity sha512-pjl5WUYQ8GqM4ESk3mv0RXfxtQMHWb92XWkxjf3nWiAkf2HVtsENfTbyGPunzw4zDbdhn9aQSSxbwahaLLDR7Q== + dependencies: + base64-js "^1.2.0" + boxen "^5.0.1" + btoa-lite "^1.0.0" + chalk "^4.1.1" + cross-fetch "^3.1.5" + dotenv "^8.2.0" + fn-annotate "^1.1.3" + node-abort-controller "^3.0.1" + object-assign "^4.1.0" + util-deprecate "^1.0.2" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +fbemitter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fbemitter/-/fbemitter-3.0.0.tgz#00b2a1af5411254aab416cd75f9e6289bee4bff3" + integrity sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw== + dependencies: + fbjs "^3.0.0" + +fbjs-css-vars@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" + integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== + +fbjs@^3.0.0, fbjs@^3.0.1: + version "3.0.5" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.5.tgz#aa0edb7d5caa6340011790bd9249dbef8a81128d" + integrity sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg== + dependencies: + cross-fetch "^3.1.5" + fbjs-css-vars "^1.0.0" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^1.0.35" + +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + +fflate@^0.7.3: + version "0.7.4" + resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.7.4.tgz#61587e5d958fdabb5a9368a302c25363f4f69f50" + integrity sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw== + +figures@3.2.0, figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== + +filenamify@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" + integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.1" + trim-repeated "^1.0.0" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== + dependencies: + locate-path "^2.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +flux@^4.0.1: + version "4.0.4" + resolved "https://registry.yarnpkg.com/flux/-/flux-4.0.4.tgz#9661182ea81d161ee1a6a6af10d20485ef2ac572" + integrity sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw== + dependencies: + fbemitter "^3.0.0" + fbjs "^3.0.1" + +fn-annotate@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fn-annotate/-/fn-annotate-1.2.0.tgz#28da000117dea61842fe61f353f41cf4c93a7a7e" + integrity sha512-j2gv2wkRhQgkJNf1ygdca8ynP3tK+a87bowc+RG81iWTye3yKIOeAkrKYv0Kqyh8yCeSyljOk3ZFelfXUFpirA== + +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +foreground-child@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" + integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + +formik@^2.4.5: + version "2.4.6" + resolved "https://registry.yarnpkg.com/formik/-/formik-2.4.6.tgz#4da75ca80f1a827ab35b08fd98d5a76e928c9686" + integrity sha512-A+2EI7U7aG296q2TLGvNapDNTZp1khVt5Vk0Q/fyfSROss0V/V6+txt2aJnwEos44IxTCW/LYAi/zgWzlevj+g== + dependencies: + "@types/hoist-non-react-statics" "^3.3.1" + deepmerge "^2.1.1" + hoist-non-react-statics "^3.3.0" + lodash "^4.17.21" + lodash-es "^4.17.21" + react-fast-compare "^2.0.1" + tiny-warning "^1.0.2" + tslib "^2.0.0" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +frac@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/frac/-/frac-1.1.2.tgz#3d74f7f6478c88a1b5020306d747dc6313c74d0b" + integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA== + +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +front-matter@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-4.0.2.tgz#b14e54dc745cfd7293484f3210d15ea4edd7f4d5" + integrity sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg== + dependencies: + js-yaml "^3.13.1" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^11.1.0, fs-extra@^11.1.1, fs-extra@^11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fs@^0.0.1-security: + version "0.0.1-security" + resolved "https://registry.yarnpkg.com/fs/-/fs-0.0.1-security.tgz#8a7bd37186b6dddf3813f23858b57ecaaf5e41d4" + integrity sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-pkg-repo@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385" + integrity sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA== + dependencies: + "@hutson/parse-repository-url" "^3.0.0" + hosted-git-info "^4.0.0" + through2 "^2.0.0" + yargs "^16.2.0" + +get-port@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + +get-stream@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" + integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +gh-pages@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-6.1.1.tgz#e80af927a081cb480657fde5a0b87ea2e77d6c74" + integrity sha512-upnohfjBwN5hBP9w2dPE7HO5JJTHzSGMV1JrLrHvNuqmjoYHg6TBrCcnEoorjG/e0ejbuvnwyKMdTyM40PEByw== + dependencies: + async "^3.2.4" + commander "^11.0.0" + email-addresses "^5.0.0" + filenamify "^4.3.0" + find-cache-dir "^3.3.1" + fs-extra "^11.1.1" + globby "^6.1.0" + +git-raw-commits@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-3.0.0.tgz#5432f053a9744f67e8db03dbc48add81252cfdeb" + integrity sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw== + dependencies: + dargs "^7.0.0" + meow "^8.1.2" + split2 "^3.2.2" + +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + integrity sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw== + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-5.0.1.tgz#db748aa0e43d313bf38dcd68624d8443234e1c15" + integrity sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA== + dependencies: + meow "^8.1.2" + semver "^7.0.0" + +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== + dependencies: + is-ssh "^1.4.0" + parse-url "^8.1.0" + +git-url-parse@14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-14.0.0.tgz#18ce834726d5fbca0c25a4555101aa277017418f" + integrity sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ== + dependencies: + git-up "^7.0.0" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + integrity sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ== + dependencies: + ini "^1.3.2" + +glob-parent@6.0.2, glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@10.3.10: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + +glob@^10.2.2, glob@^10.3.10: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^9.2.0: + version "9.3.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21" + integrity sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q== + dependencies: + fs.realpath "^1.0.0" + minimatch "^8.0.2" + minipass "^4.2.4" + path-scurry "^1.6.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +globby@11.1.0, globby@^11.0.3, globby@^11.0.4, globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +goober@^2.1.10: + version "2.1.14" + resolved "https://registry.yarnpkg.com/goober/-/goober-2.1.14.tgz#4a5c94fc34dc086a8e6035360ae1800005135acd" + integrity sha512-4UpC0NdGyAFqLNPnhCT2iHpza2q+RAY3GV85a/mRPdzyPQMsj0KmMMuetdIkzWRbJ+Hgau1EZztq8ImmiMGhsg== + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@4.2.11, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +graphql-config@^5.0.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-5.1.2.tgz#ecd7b59de27b706e4714720f550dbeb0caa1bc10" + integrity sha512-kVwUuFz1h9u7B0nDPtnLFWN+x018niaH3zi1ChFCNfbunhDVJ911Z3YcglK5EfDfySeeH+zCa1aGxd1wMgNd7g== + dependencies: + "@graphql-tools/graphql-file-loader" "^8.0.0" + "@graphql-tools/json-file-loader" "^8.0.0" + "@graphql-tools/load" "^8.0.0" + "@graphql-tools/merge" "^9.0.0" + "@graphql-tools/url-loader" "^8.0.0" + "@graphql-tools/utils" "^10.0.0" + cosmiconfig "^9.0.0" + jiti "^1.18.2" + minimatch "^9.0.5" + string-env-interpolation "^1.0.1" + tslib "^2.4.0" + +graphql-parse-resolve-info@^4.14.0: + version "4.14.0" + resolved "https://registry.yarnpkg.com/graphql-parse-resolve-info/-/graphql-parse-resolve-info-4.14.0.tgz#b2f75fea037ed6763f78154d2bf51ee4c3c6fb9c" + integrity sha512-5Fbquh3IZMciLYgtiWeFxAeZOwpPyonhbaN05fzL/Gll0HS0hMqJh1Q88NQLHiASD6//cJ3LTXLncuajRqsUcA== + dependencies: + debug "^4.1.1" + tslib "^2.0.1" + +graphql-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-6.1.0.tgz#f4eb2107967af3c7a5907eb3131c671eac89be4f" + integrity sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw== + dependencies: + "@graphql-typed-document-node/core" "^3.2.0" + cross-fetch "^3.1.5" + +graphql-tag@^2.11.0, graphql-tag@^2.12.6: + version "2.12.6" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== + dependencies: + tslib "^2.1.0" + +graphql-ws@^5.14.0, graphql-ws@^5.14.2: + version "5.16.0" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.16.0.tgz#849efe02f384b4332109329be01d74c345842729" + integrity sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A== + +graphql@^15.8.0: + version "15.9.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.9.0.tgz#4e8ca830cfd30b03d44d3edd9cac2b0690304b53" + integrity sha512-GCOQdvm7XxV1S4U4CGrsdlEN37245eC8P9zaYCMr6K1BG0IPGy5lUwmJsEOGyl1GD6HXjOtl2keCP9asRBwNvA== + +graphql@^16.6.0: + version "16.9.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.9.0.tgz#1c310e63f16a49ce1fbb230bd0a000e99f6f115f" + integrity sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw== + +handlebars@^4.7.7: + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +has-unicode@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +hasura-cli@2.36.2: + version "2.36.2" + resolved "https://registry.yarnpkg.com/hasura-cli/-/hasura-cli-2.36.2.tgz#78bcb2200d2c062c73d046ef357bfa95f895672b" + integrity sha512-sB9Mu+wDtBQzUoupK6SkZppNQktoZt3oY1w3/t/KXf4+x/I3CG2lV7IhC9ZBrZoNoI93fiLLE3blhmxokOmOIw== + dependencies: + axios "^1.6.0" + chalk-template "^1.1.0" + +header-case@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== + dependencies: + capital-case "^1.0.4" + tslib "^2.0.3" + +hex-rgb@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/hex-rgb/-/hex-rgb-4.3.0.tgz#af5e974e83bb2fefe44d55182b004ec818c07776" + integrity sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw== + +highlight.js@^10.7.1: + version "10.7.3" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" + integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== + +hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +hosted-git-info@^7.0.0, hosted-git-info@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.2.tgz#9b751acac097757667f30114607ef7b661ff4f17" + integrity sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w== + dependencies: + lru-cache "^10.0.1" + +http-cache-semantics@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-proxy-agent@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + +https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" + integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== + dependencies: + agent-base "^7.0.2" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +idb@^7.0.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b" + integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ== + +ieee754@^1.1.13, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-walk@^6.0.4: + version "6.0.5" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.5.tgz#ef8d61eab7da169078723d1f82833b36e200b0dd" + integrity sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A== + dependencies: + minimatch "^9.0.0" + +ignore@^5.0.4, ignore@^5.2.0, ignore@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + +immutable@~3.7.6: + version "3.7.6" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" + integrity sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw== + +import-fresh@^3.2.1, import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" + integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== + +import-local@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflected@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/inflected/-/inflected-2.1.0.tgz#2816ac17a570bbbc8303ca05bca8bf9b3f959687" + integrity sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.2, ini@^1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +ini@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.3.tgz#4c359675a6071a46985eb39b14e4a2c0ec98a795" + integrity sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg== + +init-package-json@6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-6.0.3.tgz#2552fba75b6eed2495dc97f44183e2e5a5bcf8b0" + integrity sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w== + dependencies: + "@npmcli/package-json" "^5.0.0" + npm-package-arg "^11.0.0" + promzard "^1.0.0" + read "^3.0.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + validate-npm-package-name "^5.0.0" + +inquirer@^8.0.0, inquirer@^8.2.4: + version "8.2.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" + integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^6.0.1" + +internal-slot@^1.0.4, internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ioredis@^5.3.2: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.4.1.tgz#1c56b70b759f01465913887375ed809134296f40" + integrity sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA== + dependencies: + "@ioredis/commands" "^1.1.1" + cluster-key-slot "^1.1.0" + debug "^4.3.4" + denque "^2.1.0" + lodash.defaults "^4.2.0" + lodash.isarguments "^3.1.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + standard-as-callback "^2.1.0" + +ip-address@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" + integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== + dependencies: + jsbn "1.1.0" + sprintf-js "^1.1.3" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0: + version "2.15.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea" + integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA== + dependencies: + hasown "^2.0.2" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@4.0.3, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-2.0.2.tgz#1c0884d3012c841556243483aa5d522f47396d2a" + integrity sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ== + dependencies: + tslib "^2.0.3" + +is-map@^2.0.2, is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +is-set@^2.0.2, is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-ssh@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== + dependencies: + protocols "^2.0.1" + +is-stream@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-text-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== + dependencies: + text-extensions "^1.0.0" + +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-2.0.2.tgz#f1105ced1fe4de906a5f39553e7d3803fd804649" + integrity sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ== + dependencies: + tslib "^2.0.3" + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" + integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + +is-what@^4.1.8: + version "4.1.16" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.16.tgz#1ad860a19da8b4895ad5495da3182ce2acdd7a6f" + integrity sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A== + +is-windows@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== + dependencies: + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" + +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jake@^10.8.5: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" + integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +jdenticon@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jdenticon/-/jdenticon-3.2.0.tgz#b5b9ef413cb66f70c600d6e69a764c977f248a46" + integrity sha512-z6Iq3fTODUMSOiR2nNYrqigS6Y0GvdXfyQWrUby7htDHvX7GNEwaWR4hcaL+FmhEgBe08Xkup/BKxXQhDJByPA== + dependencies: + canvas-renderer "~2.2.0" + +jest-canvas-mock@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz#7e21ebd75e05ab41c890497f6ba8a77f915d2ad6" + integrity sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A== + dependencies: + cssfontparser "^1.2.1" + moo-color "^1.0.2" + +"jest-diff@>=29.4.3 < 30", jest-diff@^29.4.1, jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-worker@^26.2.1: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jiti@^1.17.1, jiti@^1.18.2, jiti@^1.21.0: + version "1.21.6" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" + integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== + +jose@^4.15.5: + version "4.15.9" + resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.9.tgz#9b68eda29e9a0614c042fa29387196c7dd800100" + integrity sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA== + +jose@^5.0.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/jose/-/jose-5.7.0.tgz#5c3a6eb811235e692e1af4891904b7b91b204f57" + integrity sha512-3P9qfTYDVnNn642LCAqIKbTGb9a1TBxZ9ti5zEVEr48aDdflgRjhspWFb6WM4PzAfFbGMJYC4+803v8riCRAKw== + +js-cookie@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.5.tgz#0b7e2fd0c01552c58ba86e0841f94dc2557dcdbc" + integrity sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.1.0, js-yaml@^4.0.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +js-yaml@^3.10.0, js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" + integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-parse-even-better-errors@^3.0.0, json-parse-even-better-errors@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz#b43d35e89c0f3be6b5fbbe9dc6c82467b30c28da" + integrity sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ== + +json-rpc-engine@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz#bf5ff7d029e1c1bf20cb6c0e9f348dcd8be5a393" + integrity sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ== + dependencies: + "@metamask/safe-event-emitter" "^2.0.0" + eth-rpc-errors "^4.0.2" + +json-rpc-middleware-stream@^4.2.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/json-rpc-middleware-stream/-/json-rpc-middleware-stream-4.2.3.tgz#08340846ffaa2a60287930773546eb4b7f7dbba2" + integrity sha512-4iFb0yffm5vo3eFKDbQgke9o17XBcLQ2c3sONrXSbcOLzP8LTojqo8hRGVgtJShhm5q4ZDSNq039fAx9o65E1w== + dependencies: + "@metamask/safe-event-emitter" "^3.0.0" + json-rpc-engine "^6.1.0" + readable-stream "^2.3.3" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-nice@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" + integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json-to-pretty-yaml@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz#f4cd0bd0a5e8fe1df25aaf5ba118b099fd992d5b" + integrity sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A== + dependencies: + remedial "^1.0.7" + remove-trailing-spaces "^1.0.6" + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2, json5@^2.2.0, json5@^2.2.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonc-parser@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + +jsonc-parser@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4" + integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0, jsonparse@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +jsonpointer@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" + integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== + +jsonwebtoken@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" + integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^7.5.4" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" + +just-diff-apply@^5.2.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f" + integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw== + +just-diff@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285" + integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA== + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +keyv@^4.4.0, keyv@^4.5.3, keyv@~4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kind-of@^6.0.2, kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +language-subtag-registry@^0.3.20: + version "0.3.23" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz#23529e04d9e3b74679d70142df3fd2eb6ec572e7" + integrity sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ== + +language-tags@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" + integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== + dependencies: + language-subtag-registry "^0.3.20" + +lerna@^8.1.8: + version "8.1.8" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-8.1.8.tgz#9edc9ce4fb4b6c7e22c994e9ef91d4e0370595b2" + integrity sha512-Rmo5ShMx73xM2CUcRixjmpZIXB7ZFlWEul1YvJyx/rH4onAwDHtUGD7Rx4NZYL8QSRiQHroglM2Oyq+WqA4BYg== + dependencies: + "@lerna/create" "8.1.8" + "@npmcli/arborist" "7.5.4" + "@npmcli/package-json" "5.2.0" + "@npmcli/run-script" "8.1.0" + "@nx/devkit" ">=17.1.2 < 20" + "@octokit/plugin-enterprise-rest" "6.0.1" + "@octokit/rest" "19.0.11" + aproba "2.0.0" + byte-size "8.1.1" + chalk "4.1.0" + clone-deep "4.0.1" + cmd-shim "6.0.3" + color-support "1.1.3" + columnify "1.6.0" + console-control-strings "^1.1.0" + conventional-changelog-angular "7.0.0" + conventional-changelog-core "5.0.1" + conventional-recommended-bump "7.0.1" + cosmiconfig "^8.2.0" + dedent "1.5.3" + envinfo "7.13.0" + execa "5.0.0" + fs-extra "^11.2.0" + get-port "5.1.1" + get-stream "6.0.0" + git-url-parse "14.0.0" + glob-parent "6.0.2" + globby "11.1.0" + graceful-fs "4.2.11" + has-unicode "2.0.1" + import-local "3.1.0" + ini "^1.3.8" + init-package-json "6.0.3" + inquirer "^8.2.4" + is-ci "3.0.1" + is-stream "2.0.0" + jest-diff ">=29.4.3 < 30" + js-yaml "4.1.0" + libnpmaccess "8.0.6" + libnpmpublish "9.0.9" + load-json-file "6.2.0" + lodash "^4.17.21" + make-dir "4.0.0" + minimatch "3.0.5" + multimatch "5.0.0" + node-fetch "2.6.7" + npm-package-arg "11.0.2" + npm-packlist "8.0.2" + npm-registry-fetch "^17.1.0" + nx ">=17.1.2 < 20" + p-map "4.0.0" + p-map-series "2.1.0" + p-pipe "3.1.0" + p-queue "6.6.2" + p-reduce "2.1.0" + p-waterfall "2.1.1" + pacote "^18.0.6" + pify "5.0.0" + read-cmd-shim "4.0.0" + resolve-from "5.0.0" + rimraf "^4.4.1" + semver "^7.3.8" + set-blocking "^2.0.0" + signal-exit "3.0.7" + slash "3.0.0" + ssri "^10.0.6" + string-width "^4.2.3" + strip-ansi "^6.0.1" + strong-log-transformer "2.1.0" + tar "6.2.1" + temp-dir "1.0.0" + typescript ">=3 < 6" + upath "2.0.1" + uuid "^10.0.0" + validate-npm-package-license "3.0.4" + validate-npm-package-name "5.0.1" + wide-align "1.1.5" + write-file-atomic "5.0.1" + write-pkg "4.0.0" + yargs "17.7.2" + yargs-parser "21.1.1" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +libnpmaccess@8.0.6: + version "8.0.6" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-8.0.6.tgz#73be4c236258babc0a0bca6d3b6a93a6adf937cf" + integrity sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw== + dependencies: + npm-package-arg "^11.0.2" + npm-registry-fetch "^17.0.1" + +libnpmpublish@9.0.9: + version "9.0.9" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-9.0.9.tgz#e737378c09f09738377d2a276734be35cffb85e2" + integrity sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg== + dependencies: + ci-info "^4.0.0" + normalize-package-data "^6.0.1" + npm-package-arg "^11.0.2" + npm-registry-fetch "^17.0.1" + proc-log "^4.2.0" + semver "^7.3.7" + sigstore "^2.2.0" + ssri "^10.0.6" + +lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lilconfig@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" + integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== + +linebreak@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/linebreak/-/linebreak-1.1.0.tgz#831cf378d98bced381d8ab118f852bd50d81e46b" + integrity sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ== + dependencies: + base64-js "0.0.8" + unicode-trie "^2.0.0" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lines-and-columns@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" + integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== + +listr2@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" + integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.5" + through "^2.3.8" + wrap-ansi "^7.0.0" + +load-json-file@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1" + integrity sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ== + dependencies: + graceful-fs "^4.1.15" + parse-json "^5.0.0" + strip-bom "^4.0.0" + type-fest "^0.6.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.curry@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" + integrity sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + +lodash.flow@^3.3.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a" + integrity sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw== + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isarguments@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + +lodash@^4.17.20, lodash@^4.17.21, lodash@~4.17.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.0.0, log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +loglevel@^1.6.8: + version "1.9.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.1.tgz#d63976ac9bcd03c7c873116d41c2a85bafff1be7" + integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lottie-react@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/lottie-react/-/lottie-react-2.4.0.tgz#f7249eee2b1deee70457a2d142194fdf2456e4bd" + integrity sha512-pDJGj+AQlnlyHvOHFK7vLdsDcvbuqvwPZdMlJ360wrzGFurXeKPr8SiRCjLf3LrNYKANQtSsh5dz9UYQHuqx4w== + dependencies: + lottie-web "^5.10.2" + +lottie-web@^5.10.2: + version "5.12.2" + resolved "https://registry.yarnpkg.com/lottie-web/-/lottie-web-5.12.2.tgz#579ca9fe6d3fd9e352571edd3c0be162492f68e5" + integrity sha512-uvhvYPC8kGPjXT3MyKMrL3JitEAmDMp30lVkuq/590Mw9ok6pWcFCwXJveo0t5uqYw1UREQHofD+jVpdjBv8wg== + +lower-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-2.0.2.tgz#64c2324a2250bf7c37c5901e76a5b5309301160b" + integrity sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg== + dependencies: + tslib "^2.0.3" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +"lru-cache@7.10.1 - 7.13.1": + version "7.13.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.13.1.tgz#267a81fbd0881327c46a81c5922606a2cfe336c4" + integrity sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ== + +lru-cache@^10.0.1, lru-cache@^10.2.0, lru-cache@^10.2.2: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lz-string@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== + +magic-bytes.js@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/magic-bytes.js/-/magic-bytes.js-1.10.0.tgz#c41cf4bc2f802992b05e64962411c9dd44fdef92" + integrity sha512-/k20Lg2q8LE5xiaaSkMXk4sfvI+9EGEykFS4b0CHHGWqDYU0bGUFSwchNOMA56D7TCs9GwVTkqe9als1/ns8UQ== + +magic-string@^0.25.0, magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +make-dir@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-fetch-happen@^13.0.0, make-fetch-happen@^13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz#273ba2f78f45e1f3a6dca91cede87d9fa4821e36" + integrity sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA== + dependencies: + "@npmcli/agent" "^2.0.0" + cacache "^18.0.0" + http-cache-semantics "^4.1.1" + is-lambda "^1.0.1" + minipass "^7.0.2" + minipass-fetch "^3.0.0" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + proc-log "^4.2.0" + promise-retry "^2.0.1" + ssri "^10.0.0" + +map-cache@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-obj@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +meow@^8.1.2: + version "8.1.2" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +meros@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/meros/-/meros-1.3.0.tgz#c617d2092739d55286bf618129280f362e6242f2" + integrity sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +mini-svg-data-uri@^1.2.3: + version "1.4.4" + resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" + integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== + +minimatch@3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3" + integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^8.0.2: + version "8.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229" + integrity sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.4, minimatch@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass-collect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863" + integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== + dependencies: + minipass "^7.0.3" + +minipass-fetch@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.5.tgz#f0f97e40580affc4a35cc4a1349f05ae36cb1e4c" + integrity sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg== + dependencies: + minipass "^7.0.3" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" + integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3, minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +minizlib@^2.1.1, minizlib@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mkdirp@^2.1.3: + version "2.1.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.6.tgz#964fbcb12b2d8c5d6fbc62a963ac95a273e2cc19" + integrity sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A== + +mock-socket@^9.3.1: + version "9.3.1" + resolved "https://registry.yarnpkg.com/mock-socket/-/mock-socket-9.3.1.tgz#24fb00c2f573c84812aa4a24181bb025de80cc8e" + integrity sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw== + +modify-values@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" + integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== + +moo-color@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/moo-color/-/moo-color-1.0.3.tgz#d56435f8359c8284d83ac58016df7427febece74" + integrity sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ== + dependencies: + color-name "^1.1.4" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multimatch@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" + integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mute-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" + integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== + +mz@^2.4.0, mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoassert@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-2.0.0.tgz#a05f86de6c7a51618038a620f88878ed1e490c09" + integrity sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA== + +nanoclone@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/nanoclone/-/nanoclone-0.2.1.tgz#dd4090f8f1a110d26bb32c49ed2f5b9235209ed4" + integrity sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA== + +nanoid@^3.3.6, nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@0.6.3, negotiator@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-auth@^4.24.6: + version "4.24.7" + resolved "https://registry.yarnpkg.com/next-auth/-/next-auth-4.24.7.tgz#0a14c1e35b4a2c0c1ecff95c295b74bd48d3817a" + integrity sha512-iChjE8ov/1K/z98gdKbn2Jw+2vLgJtVV39X+rCP5SGnVQuco7QOr19FRNGMIrD8d3LYhHWV9j9sKLzq1aDWWQQ== + dependencies: + "@babel/runtime" "^7.20.13" + "@panva/hkdf" "^1.0.2" + cookie "^0.5.0" + jose "^4.15.5" + oauth "^0.9.15" + openid-client "^5.4.0" + preact "^10.6.3" + preact-render-to-string "^5.1.19" + uuid "^8.3.2" + +next-pwa@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/next-pwa/-/next-pwa-5.6.0.tgz#f7b1960c4fdd7be4253eb9b41b612ac773392bf4" + integrity sha512-XV8g8C6B7UmViXU8askMEYhWwQ4qc/XqJGnexbLV68hzKaGHZDMtHsm2TNxFcbR7+ypVuth/wwpiIlMwpRJJ5A== + dependencies: + babel-loader "^8.2.5" + clean-webpack-plugin "^4.0.0" + globby "^11.0.4" + terser-webpack-plugin "^5.3.3" + workbox-webpack-plugin "^6.5.4" + workbox-window "^6.5.4" + +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +next@^14.1.2: + version "14.2.5" + resolved "https://registry.yarnpkg.com/next/-/next-14.2.5.tgz#afe4022bb0b752962e2205836587a289270efbea" + integrity sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA== + dependencies: + "@next/env" "14.2.5" + "@swc/helpers" "0.5.5" + busboy "1.6.0" + caniuse-lite "^1.0.30001579" + graceful-fs "^4.2.11" + postcss "8.4.31" + styled-jsx "5.1.1" + optionalDependencies: + "@next/swc-darwin-arm64" "14.2.5" + "@next/swc-darwin-x64" "14.2.5" + "@next/swc-linux-arm64-gnu" "14.2.5" + "@next/swc-linux-arm64-musl" "14.2.5" + "@next/swc-linux-x64-gnu" "14.2.5" + "@next/swc-linux-x64-musl" "14.2.5" + "@next/swc-win32-arm64-msvc" "14.2.5" + "@next/swc-win32-ia32-msvc" "14.2.5" + "@next/swc-win32-x64-msvc" "14.2.5" + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +nock@^13.5.0: + version "13.5.5" + resolved "https://registry.yarnpkg.com/nock/-/nock-13.5.5.tgz#cd1caaca281d42be17d51946367a3d53a6af3e78" + integrity sha512-XKYnqUrCwXC8DGG1xX4YH5yNIrlh9c065uaMZZHUoeUUINTOyt+x/G+ezYk0Ft6ExSREVIs+qBJDK503viTfFA== + dependencies: + debug "^4.1.0" + json-stringify-safe "^5.0.1" + propagate "^2.0.0" + +node-abort-controller@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" + integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== + +node-addon-api@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" + integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== + +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + +node-gyp-build@^4.3.0: + version "4.8.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" + integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== + +node-gyp@^10.0.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.2.0.tgz#80101c4aa4f7ab225f13fcc8daaaac4eb1a8dd86" + integrity sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw== + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + glob "^10.3.10" + graceful-fs "^4.2.6" + make-fetch-happen "^13.0.0" + nopt "^7.0.0" + proc-log "^4.1.0" + semver "^7.3.5" + tar "^6.2.1" + which "^4.0.0" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-machine-id@1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/node-machine-id/-/node-machine-id-1.1.12.tgz#37904eee1e59b320bb9c5d6c0a59f3b469cb6267" + integrity sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ== + +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== + +nopt@^7.0.0, nopt@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.1.tgz#1cac0eab9b8e97c9093338446eddd40b2c8ca1e7" + integrity sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w== + dependencies: + abbrev "^2.0.0" + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0, normalize-package-data@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^6.0.0, normalize-package-data@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.2.tgz#a7bc22167fe24025412bcff0a9651eb768b03506" + integrity sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g== + dependencies: + hosted-git-info "^7.0.0" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +npm-bundled@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.1.tgz#cca73e15560237696254b10170d8f86dad62da25" + integrity sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ== + dependencies: + npm-normalize-package-bin "^3.0.0" + +npm-install-checks@^6.0.0, npm-install-checks@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" + integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== + +npm-package-arg@11.0.2: + version "11.0.2" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.2.tgz#1ef8006c4a9e9204ddde403035f7ff7d718251ca" + integrity sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw== + dependencies: + hosted-git-info "^7.0.0" + proc-log "^4.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + +npm-package-arg@^11.0.0, npm-package-arg@^11.0.2: + version "11.0.3" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.3.tgz#dae0c21199a99feca39ee4bfb074df3adac87e2d" + integrity sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw== + dependencies: + hosted-git-info "^7.0.0" + proc-log "^4.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + +npm-packlist@8.0.2, npm-packlist@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-8.0.2.tgz#5b8d1d906d96d21c85ebbeed2cf54147477c8478" + integrity sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA== + dependencies: + ignore-walk "^6.0.4" + +npm-pick-manifest@^9.0.0, npm-pick-manifest@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz#83562afde52b0b07cb6244361788d319ce7e8636" + integrity sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA== + dependencies: + npm-install-checks "^6.0.0" + npm-normalize-package-bin "^3.0.0" + npm-package-arg "^11.0.0" + semver "^7.3.5" + +npm-registry-fetch@^17.0.0, npm-registry-fetch@^17.0.1, npm-registry-fetch@^17.1.0: + version "17.1.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz#fb69e8e762d456f08bda2f5f169f7638fb92beb1" + integrity sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA== + dependencies: + "@npmcli/redact" "^2.0.0" + jsonparse "^1.3.1" + make-fetch-happen "^13.0.0" + minipass "^7.0.2" + minipass-fetch "^3.0.0" + minizlib "^2.1.2" + npm-package-arg "^11.0.0" + proc-log "^4.0.0" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +nullthrows@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" + integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== + +nx@19.6.1, "nx@>=17.1.2 < 20": + version "19.6.1" + resolved "https://registry.yarnpkg.com/nx/-/nx-19.6.1.tgz#883fc5cd36fdbe10b14294d8d0a1bfe2872c469d" + integrity sha512-F7NH8/lMwd2ogPjvjMDGUJMaRuEc60DEmpd8U/3R7WgFRHWuF5ily1AKQiLfQg6V5ArQUrkBJesulTAnlHR7+g== + dependencies: + "@napi-rs/wasm-runtime" "0.2.4" + "@nrwl/tao" "19.6.1" + "@yarnpkg/lockfile" "^1.1.0" + "@yarnpkg/parsers" "3.0.0-rc.46" + "@zkochan/js-yaml" "0.0.7" + axios "^1.7.4" + chalk "^4.1.0" + cli-cursor "3.1.0" + cli-spinners "2.6.1" + cliui "^8.0.1" + dotenv "~16.4.5" + dotenv-expand "~11.0.6" + enquirer "~2.3.6" + figures "3.2.0" + flat "^5.0.2" + front-matter "^4.0.2" + fs-extra "^11.1.0" + ignore "^5.0.4" + jest-diff "^29.4.1" + jsonc-parser "3.2.0" + lines-and-columns "~2.0.3" + minimatch "9.0.3" + node-machine-id "1.1.12" + npm-run-path "^4.0.1" + open "^8.4.0" + ora "5.3.0" + semver "^7.5.3" + string-width "^4.2.3" + strong-log-transformer "^2.1.0" + tar-stream "~2.2.0" + tmp "~0.2.1" + tsconfig-paths "^4.1.2" + tslib "^2.3.0" + yargs "^17.6.2" + yargs-parser "21.1.1" + optionalDependencies: + "@nx/nx-darwin-arm64" "19.6.1" + "@nx/nx-darwin-x64" "19.6.1" + "@nx/nx-freebsd-x64" "19.6.1" + "@nx/nx-linux-arm-gnueabihf" "19.6.1" + "@nx/nx-linux-arm64-gnu" "19.6.1" + "@nx/nx-linux-arm64-musl" "19.6.1" + "@nx/nx-linux-x64-gnu" "19.6.1" + "@nx/nx-linux-x64-musl" "19.6.1" + "@nx/nx-win32-arm64-msvc" "19.6.1" + "@nx/nx-win32-x64-msvc" "19.6.1" + +oauth@^0.9.15: + version "0.9.15" + resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" + integrity sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA== + +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-hash@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== + +object-is@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" + integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4, object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.entries@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41" + integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +object.fromentries@^2.0.7, object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.groupby@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + +object.values@^1.1.6, object.values@^1.1.7, object.values@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +oidc-token-hash@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/oidc-token-hash/-/oidc-token-hash-5.0.3.tgz#9a229f0a1ce9d4fc89bcaee5478c97a889e7b7b6" + integrity sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^8.4.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +openid-client@^5.4.0: + version "5.6.5" + resolved "https://registry.yarnpkg.com/openid-client/-/openid-client-5.6.5.tgz#c149ad07b9c399476dc347097e297bbe288b8b00" + integrity sha512-5P4qO9nGJzB5PI0LFlhj4Dzg3m4odt0qsJTfyEtZyOlkgpILwEioOhVVJOrS1iVH494S4Ee5OCjjg6Bf5WOj3w== + dependencies: + jose "^4.15.5" + lru-cache "^6.0.0" + object-hash "^2.2.0" + oidc-token-hash "^5.0.3" + +optimism@^0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.18.0.tgz#e7bb38b24715f3fdad8a9a7fc18e999144bbfa63" + integrity sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ== + dependencies: + "@wry/caches" "^1.0.0" + "@wry/context" "^0.7.0" + "@wry/trie" "^0.4.3" + tslib "^2.3.0" + +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + +ora@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.3.0.tgz#fb832899d3a1372fe71c8b2c534bbfe74961bb6f" + integrity sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g== + dependencies: + bl "^4.0.3" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + log-symbols "^4.0.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@3.1.0, p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + dependencies: + p-limit "^1.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map-series@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-2.1.0.tgz#7560d4c452d9da0c07e692fdbfe6e2c81a2a91f2" + integrity sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q== + +p-map@4.0.0, p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-pipe@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e" + integrity sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw== + +p-queue@6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== + dependencies: + eventemitter3 "^4.0.4" + p-timeout "^3.2.0" + +p-reduce@2.1.0, p-reduce@^2.0.0, p-reduce@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" + integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== + +p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +p-waterfall@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-waterfall/-/p-waterfall-2.1.1.tgz#63153a774f472ccdc4eb281cdb2967fcf158b2ee" + integrity sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw== + dependencies: + p-reduce "^2.0.0" + +package-json-from-dist@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" + integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + +pacote@^18.0.0, pacote@^18.0.6: + version "18.0.6" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-18.0.6.tgz#ac28495e24f4cf802ef911d792335e378e86fac7" + integrity sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A== + dependencies: + "@npmcli/git" "^5.0.0" + "@npmcli/installed-package-contents" "^2.0.1" + "@npmcli/package-json" "^5.1.0" + "@npmcli/promise-spawn" "^7.0.0" + "@npmcli/run-script" "^8.0.0" + cacache "^18.0.0" + fs-minipass "^3.0.0" + minipass "^7.0.2" + npm-package-arg "^11.0.0" + npm-packlist "^8.0.0" + npm-pick-manifest "^9.0.0" + npm-registry-fetch "^17.0.0" + proc-log "^4.0.0" + promise-retry "^2.0.1" + sigstore "^2.2.0" + ssri "^10.0.0" + tar "^6.1.11" + +pako@^0.2.5: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-conflict-json@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz#67dc55312781e62aa2ddb91452c7606d1969960c" + integrity sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw== + dependencies: + json-parse-even-better-errors "^3.0.0" + just-diff "^6.0.0" + just-diff-apply "^5.2.0" + +parse-css-color@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/parse-css-color/-/parse-css-color-0.2.1.tgz#b687a583f2e42e66ffdfce80a570706966e807c9" + integrity sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg== + dependencies: + color-name "^1.1.4" + hex-rgb "^4.1.0" + +parse-filepath@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== + dependencies: + protocols "^2.0.0" + +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== + dependencies: + parse-path "^7.0.0" + +parse5-htmlparser2-tree-adapter@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + +parse5@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@^1.3.3, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== + dependencies: + path-root-regex "^0.1.0" + +path-scurry@^1.10.1, path-scurry@^1.11.1, path-scurry@^1.6.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pg-cloudflare@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" + integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== + +pg-connection-string@^2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d" + integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-pool@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2" + integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== + +pg-protocol@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3" + integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== + +pg-types@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg@8.11.5: + version "8.11.5" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.5.tgz#e722b0a5f1ed92931c31758ebec3ddf878dd4128" + integrity sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw== + dependencies: + pg-connection-string "^2.6.4" + pg-pool "^3.6.2" + pg-protocol "^1.6.1" + pg-types "^2.1.0" + pgpass "1.x" + optionalDependencies: + pg-cloudflare "^1.1.1" + +pg@^8.11.3: + version "8.12.0" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.12.0.tgz#9341724db571022490b657908f65aee8db91df79" + integrity sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ== + dependencies: + pg-connection-string "^2.6.4" + pg-pool "^3.6.2" + pg-protocol "^1.6.1" + pg-types "^2.1.0" + pgpass "1.x" + optionalDependencies: + pg-cloudflare "^1.1.1" + +pgpass@1.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" + integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== + dependencies: + split2 "^4.1.0" + +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pnglib@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pnglib/-/pnglib-0.0.1.tgz#f9ab6f9c688f4a9d579ad8be28878a716e30c096" + integrity sha512-95ChzOoYLOPIyVmL+Y6X+abKGXUJlvOVLkB1QQkyXl7Uczc6FElUy/x01NS7r2GX6GRezloO/ecCX9h4U9KadA== + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + +postcss-load-config@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + +postcss-nested@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131" + integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== + dependencies: + postcss-selector-parser "^6.1.1" + +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.1.1: + version "6.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@8.4.31: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@8.4.38: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + +postcss@^8.4.23, postcss@^8.4.35, postcss@^8.4.4: + version "8.4.41" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681" + integrity sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.1" + source-map-js "^1.2.0" + +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== + +postgres-date@~1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + +preact-render-to-string@^5.1.19: + version "5.2.6" + resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz#0ff0c86cd118d30affb825193f18e92bd59d0604" + integrity sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw== + dependencies: + pretty-format "^3.8.0" + +preact@^10.6.3: + version "10.23.2" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.23.2.tgz#52deec92796ae0f0cc6b034d9c66e0fbc1b837dc" + integrity sha512-kKYfePf9rzKnxOAKDpsWhg/ysrHPqT+yQ7UW4JjdnqjFIeNUnNcEJvhuA8fDenxAGWzUqtd51DfVg7xp/8T9NA== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier-plugin-tailwindcss@^0.5.12: + version "0.5.14" + resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.14.tgz#4482eed357d5e22eac259541c70aca5a4c7b9d5c" + integrity sha512-Puaz+wPUAhFp8Lo9HuciYKM2Y2XExESjeT+9NQoVFXZsPPnc9VYss2SpxdQ6vbatmt8/4+SN0oe0I1cPDABg9Q== + +prettier@^3.2.5: + version "3.3.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" + integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== + +pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-format@^27.0.2: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-format@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-3.8.0.tgz#bfbed56d5e9a776645f4b1ff7aa1a3ac4fa3c385" + integrity sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew== + +proc-log@^4.0.0, proc-log@^4.1.0, proc-log@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-4.2.0.tgz#b6f461e4026e75fdfe228b265e9f7a00779d7034" + integrity sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +proggy@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/proggy/-/proggy-2.0.0.tgz#154bb0e41d3125b518ef6c79782455c2c47d94e1" + integrity sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A== + +prom-client@^14.2.0: + version "14.2.0" + resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-14.2.0.tgz#ca94504e64156f6506574c25fb1c34df7812cf11" + integrity sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA== + dependencies: + tdigest "^0.1.1" + +promise-all-reject-late@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" + integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== + +promise-call-limit@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-3.0.1.tgz#3570f7a3f2aaaf8e703623a552cd74749688cf19" + integrity sha512-utl+0x8gIDasV5X+PI5qWEPqH6fJS0pFtQ/4gZ95xfEFb/89dmh+/b895TbFDBLiafBvxD/PGTKfvxl4kH/pQg== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +promzard@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-1.0.2.tgz#2226e7c6508b1da3471008ae17066a7c3251e660" + integrity sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ== + dependencies: + read "^3.0.1" + +prop-types@^15, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +propagate@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" + integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== + +property-expr@^2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.6.tgz#f77bc00d5928a6c748414ad12882e83f24aec1e8" + integrity sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA== + +protocols@^2.0.0, protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pure-color@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e" + integrity sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA== + +pvtsutils@^1.3.2, pvtsutils@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.5.tgz#b8705b437b7b134cd7fd858f025a23456f1ce910" + integrity sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA== + dependencies: + tslib "^2.6.1" + +pvutils@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" + integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== + +qrcode.react@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/qrcode.react/-/qrcode.react-3.1.0.tgz#5c91ddc0340f768316fbdb8fff2765134c2aecd8" + integrity sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc-slider@^10.6.2: + version "10.6.2" + resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.6.2.tgz#8bd3b63b24f2f3682ea1bf86d021073189cf33eb" + integrity sha512-FjkoFjyvUQWcBo1F3RgSglky3ar0+qHLM41PlFVYB4Bj3RD8E/Mv7kqMouLFBU+3aFglMzzctAIWRwajEuueSw== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.5" + rc-util "^5.36.0" + +rc-util@^5.36.0: + version "5.43.0" + resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.43.0.tgz#bba91fbef2c3e30ea2c236893746f3e9b05ecc4c" + integrity sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw== + dependencies: + "@babel/runtime" "^7.18.3" + react-is "^18.2.0" + +react-base16-styling@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.6.0.tgz#ef2156d66cf4139695c8a167886cb69ea660792c" + integrity sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ== + dependencies: + base16 "^1.0.0" + lodash.curry "^4.0.1" + lodash.flow "^3.3.0" + pure-color "^1.2.0" + +react-copy-to-clipboard@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz#09aae5ec4c62750ccb2e6421a58725eabc41255c" + integrity sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A== + dependencies: + copy-to-clipboard "^3.3.1" + prop-types "^15.8.1" + +react-dom@^18.2.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.2" + +react-error-boundary@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-3.1.4.tgz#255db92b23197108757a888b01e5b729919abde0" + integrity sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA== + dependencies: + "@babel/runtime" "^7.12.5" + +react-fast-compare@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" + integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== + +react-ga4@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/react-ga4/-/react-ga4-2.1.0.tgz#56601f59d95c08466ebd6edfbf8dede55c4678f9" + integrity sha512-ZKS7PGNFqqMd3PJ6+C2Jtz/o1iU9ggiy8Y8nUeksgVuvNISbmrQtJiZNvC/TjDsqD0QlU5Wkgs7i+w9+OjHhhQ== + +react-hot-toast@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/react-hot-toast/-/react-hot-toast-2.4.1.tgz#df04295eda8a7b12c4f968e54a61c8d36f4c0994" + integrity sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ== + dependencies: + goober "^2.1.10" + +react-intersection-observer@^9.13.0: + version "9.13.0" + resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-9.13.0.tgz#ee10827954cf6ccc204d027f8400a6ddb8df163a" + integrity sha512-y0UvBfjDiXqC8h0EWccyaj4dVBWMxgEx0t5RGNzQsvkfvZwugnKwxpu70StY4ivzYuMajavwUDjH4LJyIki9Lw== + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-is@^18.0.0, react-is@^18.2.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +react-json-view@^1.21.3: + version "1.21.3" + resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.21.3.tgz#f184209ee8f1bf374fb0c41b0813cff54549c475" + integrity sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw== + dependencies: + flux "^4.0.1" + react-base16-styling "^0.6.0" + react-lifecycles-compat "^3.0.4" + react-textarea-autosize "^8.3.2" + +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-paginate@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/react-paginate/-/react-paginate-8.2.0.tgz#947c3dcb444a6c16c1bcf8361871aa135baa3dcd" + integrity sha512-sJCz1PW+9PNIjUSn919nlcRVuleN2YPoFBOvL+6TPgrH/3lwphqiSOgdrLafLdyLDxsgK+oSgviqacF4hxsDIw== + dependencies: + prop-types "^15" + +react-textarea-autosize@^8.3.2: + version "8.5.3" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz#d1e9fe760178413891484847d3378706052dd409" + integrity sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ== + dependencies: + "@babel/runtime" "^7.20.13" + use-composed-ref "^1.3.0" + use-latest "^1.2.1" + +react@^18.2.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + +read-cmd-shim@4.0.0, read-cmd-shim@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb" + integrity sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q== + +read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" + integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== + dependencies: + json-parse-even-better-errors "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw== + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +read@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/read/-/read-3.0.1.tgz#926808f0f7c83fa95f1ef33c0e2c09dbb28fd192" + integrity sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw== + dependencies: + mute-stream "^1.0.0" + +readable-stream@^2.3.3, readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +redis-errors@^1.0.0, redis-errors@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" + integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== + +redis-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" + integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== + dependencies: + redis-errors "^1.0.0" + +reflect-metadata@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b" + integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== + +reflect.getprototypeof@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz#3ab04c32a8390b770712b7a8633972702d278859" + integrity sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +rehackt@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/rehackt/-/rehackt-0.1.0.tgz#a7c5e289c87345f70da8728a7eb878e5d03c696b" + integrity sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw== + +relay-runtime@12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-12.0.0.tgz#1e039282bdb5e0c1b9a7dc7f6b9a09d4f4ff8237" + integrity sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug== + dependencies: + "@babel/runtime" "^7.0.0" + fbjs "^3.0.0" + invariant "^2.2.4" + +remedial@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/remedial/-/remedial-1.0.8.tgz#a5e4fd52a0e4956adbaf62da63a5a46a78c578a0" + integrity sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg== + +remove-accents@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.5.0.tgz#77991f37ba212afba162e375b627631315bed687" + integrity sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +remove-trailing-spaces@^1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz#4354d22f3236374702f58ee373168f6d6887ada7" + integrity sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.22.2, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.5: + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +response-iterator@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da" + integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw== + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry@0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rfdc@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== + +rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.4.1.tgz#bd33364f67021c5b79e93d7f4fa0568c7c21b755" + integrity sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og== + dependencies: + glob "^9.2.0" + +rollup-plugin-terser@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== + dependencies: + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" + serialize-javascript "^4.0.0" + terser "^5.0.0" + +rollup@^2.43.1: + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + optionalDependencies: + fsevents "~2.3.2" + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rxjs@^7.5.5, rxjs@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +satori@0.10.9: + version "0.10.9" + resolved "https://registry.yarnpkg.com/satori/-/satori-0.10.9.tgz#efde2898ab4a5b09c072f0f4e112ac4a7d6a499c" + integrity sha512-XU9EELUEZuioT4acLIpCXxHcFzrsC8muvg0MY28d+TlqwxbkTzBmWbw+3+hnCzXT7YZ0Qm8k3eXktDaEu+qmEw== + dependencies: + "@shuding/opentype.js" "1.4.0-beta.0" + css-background-parser "^0.1.0" + css-box-shadow "1.0.0-3" + css-to-react-native "^3.0.0" + emoji-regex "^10.2.1" + escape-html "^1.0.3" + linebreak "^1.1.0" + parse-css-color "^0.2.1" + postcss-value-parser "^4.2.0" + yoga-wasm-web "^0.3.3" + +scale-ts@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/scale-ts/-/scale-ts-1.6.0.tgz#e9641093c5a9e50f964ddb1607139034e3e932e9" + integrity sha512-Ja5VCjNZR8TGKhUumy9clVVxcDpM+YFjAnkMuwQy68Hixio3VRRvWdE3g8T/yC+HXA0ZDQl2TGyUmtmbcVl40Q== + +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== + dependencies: + loose-envify "^1.1.0" + +schema-utils@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.1.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +scuid@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/scuid/-/scuid-1.1.0.tgz#d3f9f920956e737a60f72d0e4ad280bf324d5dab" + integrity sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg== + +"semver@2 || 3 || 4 || 5", semver@^5.6.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.0.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +server-only@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/server-only/-/server-only-0.0.1.tgz#0f366bb6afb618c37c9255a314535dc412cd1c9e" + integrity sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA== + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.1, set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.11: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shallowequal@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +side-channel@^1.0.4, side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@3.0.7, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +signedsource@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" + integrity sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww== + +sigstore@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-2.3.1.tgz#0755dd2cc4820f2e922506da54d3d628e13bfa39" + integrity sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ== + dependencies: + "@sigstore/bundle" "^2.3.2" + "@sigstore/core" "^1.0.0" + "@sigstore/protobuf-specs" "^0.3.2" + "@sigstore/sign" "^2.3.2" + "@sigstore/tuf" "^2.3.4" + "@sigstore/verify" "^1.2.1" + +siwe@^2.1.4: + version "2.3.2" + resolved "https://registry.yarnpkg.com/siwe/-/siwe-2.3.2.tgz#0794ae25f734f3068de0ab093ddd2f7867bc2d67" + integrity sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA== + dependencies: + "@spruceid/siwe-parser" "^2.1.2" + "@stablelib/random" "^1.0.1" + uri-js "^4.4.1" + valid-url "^1.0.9" + +slash@3.0.0, slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +smoldot@2.0.22: + version "2.0.22" + resolved "https://registry.yarnpkg.com/smoldot/-/smoldot-2.0.22.tgz#1e924d2011a31c57416e79a2b97a460f462a31c7" + integrity sha512-B50vRgTY6v3baYH6uCgL15tfaag5tcS2o/P5q1OiXcKGv1axZDfz2dzzMuIkVpyMR2ug11F6EAtQlmYBQd292g== + dependencies: + ws "^8.8.1" + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +socks-proxy-agent@^8.0.3: + version "8.0.4" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz#9071dca17af95f483300316f4b063578fa0db08c" + integrity sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw== + dependencies: + agent-base "^7.1.1" + debug "^4.3.4" + socks "^2.8.3" + +socks@^2.8.3: + version "2.8.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5" + integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== + dependencies: + ip-address "^9.0.5" + smart-buffer "^4.2.0" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-js@^1.0.1, source-map-js@^1.0.2, source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.20" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz#e44ed19ed318dd1e5888f93325cee800f0f51b89" + integrity sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw== + +split2@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +split2@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +split@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + +sponge-case@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sponge-case/-/sponge-case-1.0.1.tgz#260833b86453883d974f84854cdb63aecc5aef4c" + integrity sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA== + dependencies: + tslib "^2.0.3" + +sprintf-js@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +ssf@~0.11.2: + version "0.11.2" + resolved "https://registry.yarnpkg.com/ssf/-/ssf-0.11.2.tgz#0b99698b237548d088fc43cdf2b70c1a7512c06c" + integrity sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g== + dependencies: + frac "~1.1.2" + +ssri@^10.0.0, ssri@^10.0.6: + version "10.0.6" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.6.tgz#a8aade2de60ba2bce8688e3fa349bad05c7dc1e5" + integrity sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ== + dependencies: + minipass "^7.0.3" + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +standard-as-callback@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" + integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +stoppable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" + integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== + +store@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" + integrity sha512-eO9xlzDpXLiMr9W1nQ3Nfp9EzZieIQc10zPPMP5jsVV7bLOziSFFBP0XoDXACEIFtdI+rIz0NwWVA/QVJ8zJtw== + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +string-env-interpolation@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" + integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== + +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string.prototype.codepointat@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc" + integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== + +string.prototype.includes@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz#8986d57aee66d5460c144620a6d873778ad7289f" + integrity sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.matchall@^4.0.11, string.prototype.matchall@^4.0.6: + version "4.0.11" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a" + integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + regexp.prototype.flags "^1.5.2" + set-function-name "^2.0.2" + side-channel "^1.0.6" + +string.prototype.repeat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz#e90872ee0308b29435aa26275f6e1b762daee01a" + integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b" + integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-outer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +strong-log-transformer@2.1.0, strong-log-transformer@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" + integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== + dependencies: + duplexer "^0.1.1" + minimist "^1.2.0" + through "^2.3.4" + +styled-components@^6.1.1: + version "6.1.12" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.1.12.tgz#0d9d511aacfb9052936146dcc2856559e6fae4df" + integrity sha512-n/O4PzRPhbYI0k1vKKayfti3C/IGcPf+DqcrOB7O/ab9x4u/zjqraneT5N45+sIe87cxrCApXM8Bna7NYxwoTA== + dependencies: + "@emotion/is-prop-valid" "1.2.2" + "@emotion/unitless" "0.8.1" + "@types/stylis" "4.2.5" + css-to-react-native "3.2.0" + csstype "3.1.3" + postcss "8.4.38" + shallowequal "1.1.0" + stylis "4.3.2" + tslib "2.6.2" + +styled-jsx@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" + integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== + dependencies: + client-only "0.0.1" + +stylis@4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.2.tgz#8f76b70777dd53eb669c6f58c997bf0a9972e444" + integrity sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg== + +sucrase@^3.32.0: + version "3.35.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "^10.3.10" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +"superjson@^1.12.2 || ^2.0.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/superjson/-/superjson-2.2.1.tgz#9377a7fa80fedb10c851c9dbffd942d4bcf79733" + integrity sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA== + dependencies: + copy-anything "^3.0.2" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0, supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-parser@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^3.0.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8" + integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.3.1" + css-what "^6.1.0" + csso "^5.0.5" + picocolors "^1.0.0" + +swap-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-2.0.2.tgz#671aedb3c9c137e2985ef51c51f9e98445bf70d9" + integrity sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw== + dependencies: + tslib "^2.0.3" + +symbol-observable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" + integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== + +synckit@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.9.1.tgz#febbfbb6649979450131f64735aa3f6c14575c88" + integrity sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A== + dependencies: + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" + +tailwind-datepicker-react@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/tailwind-datepicker-react/-/tailwind-datepicker-react-1.4.3.tgz#137e8d0a3a0d48a38ce666df6d2365acf37bbb00" + integrity sha512-K/mX7GjsO8fvaN1/jZcEbCMb14VdBe0HGxBy36WK4zxfYOPB2tGMSAUo06so+BmsaVPU4dwmfDElK/6Uxaashw== + dependencies: + tailwind-merge "^1.6.1" + +tailwind-merge@^1.6.1: + version "1.14.0" + resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-1.14.0.tgz#e677f55d864edc6794562c63f5001f45093cdb8b" + integrity sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ== + +tailwindcss@^3.4.1: + version "3.4.10" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.10.tgz#70442d9aeb78758d1f911af29af8255ecdb8ffef" + integrity sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.5.3" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.3.0" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.21.0" + lilconfig "^2.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" + postcss-selector-parser "^6.0.11" + resolve "^1.22.2" + sucrase "^3.32.0" + +tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar-stream@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@6.2.1, tar@^6.1.11, tar@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tdigest@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.2.tgz#96c64bac4ff10746b910b0e23b515794e12faced" + integrity sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA== + dependencies: + bintrees "1.0.2" + +temp-dir@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== + +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +tempy@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3" + integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw== + dependencies: + is-stream "^2.0.0" + temp-dir "^2.0.0" + type-fest "^0.16.0" + unique-string "^2.0.0" + +terser-webpack-plugin@^5.3.3: + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== + dependencies: + "@jridgewell/trace-mapping" "^0.3.20" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.26.0" + +terser@^5.0.0, terser@^5.26.0: + version "5.31.6" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.6.tgz#c63858a0f0703988d0266a82fcbf2d7ba76422b1" + integrity sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +third-party-capital@1.0.20: + version "1.0.20" + resolved "https://registry.yarnpkg.com/third-party-capital/-/third-party-capital-1.0.20.tgz#e218a929a35bf4d2245da9addb8ab978d2f41685" + integrity sha512-oB7yIimd8SuGptespDAZnNkzIz+NWaJCu2RMsbs4Wmp9zSDUM8Nhi3s2OOcqYuv3mN4hitXc8DVx+LyUmbUDiA== + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +tiny-inflate@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" + integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== + +tiny-warning@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +title-case@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/title-case/-/title-case-3.0.3.tgz#bc689b46f02e411f1d1e1d081f7c3deca0489982" + integrity sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA== + dependencies: + tslib "^2.0.3" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmp@~0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toggle-selection@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" + integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +toposort@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" + integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + dependencies: + punycode "^2.1.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +treeverse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-3.0.0.tgz#dd82de9eb602115c6ebd77a574aae67003cb48c8" + integrity sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ== + +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== + dependencies: + escape-string-regexp "^1.0.2" + +ts-api-utils@^1.0.1, ts-api-utils@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" + integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +ts-invariant@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" + integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== + dependencies: + tslib "^2.1.0" + +ts-log@^2.2.3: + version "2.2.5" + resolved "https://registry.yarnpkg.com/ts-log/-/ts-log-2.2.5.tgz#aef3252f1143d11047e2cb6f7cfaac7408d96623" + integrity sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA== + +tsconfig-paths-webpack-plugin@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.1.0.tgz#3c6892c5e7319c146eee1e7302ed9e6f2be4f763" + integrity sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.7.0" + tsconfig-paths "^4.1.2" + +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tsconfig-paths@^4.1.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c" + integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg== + dependencies: + json5 "^2.2.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tslib@2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1, tslib@^2.6.2, tslib@^2.6.3, tslib@~2.6.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + +tslib@~2.5.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" + integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== + +tuf-js@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-2.2.1.tgz#fdd8794b644af1a75c7aaa2b197ddffeb2911b56" + integrity sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA== + dependencies: + "@tufjs/models" "2.0.1" + debug "^4.3.4" + make-fetch-happen "^13.0.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" + integrity sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^2.7.2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.3.tgz#436981652129285cc3ba94f392886c2637ea0486" + integrity sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ== + +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +typeorm@^0.3.20: + version "0.3.20" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.20.tgz#4b61d737c6fed4e9f63006f88d58a5e54816b7ab" + integrity sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q== + dependencies: + "@sqltools/formatter" "^1.2.5" + app-root-path "^3.1.0" + buffer "^6.0.3" + chalk "^4.1.2" + cli-highlight "^2.1.11" + dayjs "^1.11.9" + debug "^4.3.4" + dotenv "^16.0.3" + glob "^10.3.10" + mkdirp "^2.1.3" + reflect-metadata "^0.2.1" + sha.js "^2.4.11" + tslib "^2.5.0" + uuid "^9.0.0" + yargs "^17.6.2" + +"typescript@>=3 < 6", typescript@^5.3.3, typescript@^5.4.5: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== + +ua-parser-js@^1.0.35: + version "1.0.38" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.38.tgz#66bb0c4c0e322fe48edfe6d446df6042e62f25e2" + integrity sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ== + +uglify-js@^3.1.4: + version "3.19.2" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.2.tgz#319ae26a5fbd18d03c7dc02496cfa1d6f1cd4307" + integrity sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== + +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== + +undici@6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-6.13.0.tgz#7edbf4b7f3aac5f8a681d515151bf55cb3589d72" + integrity sha512-Q2rtqmZWrbP8nePMq7mOJIN98M0fYvSgV89vwl/BQRT4mDOeY2GXZngfGpcBBhtky3woM7G24wZV3Q304Bv6cw== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +unicode-trie@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-2.0.0.tgz#8fd8845696e2e14a8b67d78fa9e0dd2cad62fec8" + integrity sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ== + dependencies: + pako "^0.2.5" + tiny-inflate "^1.0.0" + +unique-filename@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" + integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== + dependencies: + unique-slug "^4.0.0" + +unique-slug@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" + integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== + dependencies: + imurmurhash "^0.1.4" + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universal-user-agent@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" + integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unixify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" + integrity sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg== + dependencies: + normalize-path "^2.1.1" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +upath@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" + integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== + +upath@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-browserslist-db@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" + +uri-js@^4.2.2, uri-js@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urlpattern-polyfill@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz#f0a03a97bfb03cdf33553e5e79a2aadd22cac8ec" + integrity sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg== + +urlpattern-polyfill@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz#99f096e35eff8bf4b5a2aa7d58a1523d6ebc7ce5" + integrity sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ== + +use-composed-ref@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda" + integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ== + +use-isomorphic-layout-effect@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + +use-latest@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2" + integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw== + dependencies: + use-isomorphic-layout-effect "^1.1.1" + +use-sync-external-store@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz#c3b6390f3a30eba13200d2302dcdf1e7b57b2ef9" + integrity sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw== + +utf-8-validate@^5.0.2: + version "5.0.10" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" + integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== + dependencies: + node-gyp-build "^4.3.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294" + integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +valid-url@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" + integrity sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA== + +validate-npm-package-license@3.0.4, validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@5.0.1, validate-npm-package-name@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz#a316573e9b49f3ccd90dbb6eb52b3f06c6d604e8" + integrity sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ== + +value-or-promise@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" + integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== + +value-or-promise@^1.0.11, value-or-promise@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" + integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +walk-up-path@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886" + integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA== + +wcwidth@^1.0.0, wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +web-streams-polyfill@^3.0.3, web-streams-polyfill@^3.2.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b" + integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== + +web-vitals@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.5.2.tgz#5bb58461bbc173c3f00c2ddff8bfe6e680999ca9" + integrity sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg== + +webcrypto-core@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.8.0.tgz#aaea17f3dd9c77c304e3c494eb27ca07cc72ca37" + integrity sha512-kR1UQNH8MD42CYuLzvibfakG5Ew5seG85dMMoAM/1LqvckxaF6pUiidLuraIu4V+YCIFabYecUZAW0TuxAoaqw== + dependencies: + "@peculiar/asn1-schema" "^2.3.8" + "@peculiar/json-schema" "^1.1.12" + asn1js "^3.0.1" + pvtsutils "^1.3.5" + tslib "^2.6.2" + +"webextension-polyfill@>=0.10.0 <1.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/webextension-polyfill/-/webextension-polyfill-0.12.0.tgz#f62c57d2cd42524e9fbdcee494c034cae34a3d69" + integrity sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q== + +webextension-polyfill@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz#ccb28101c910ba8cf955f7e6a263e662d744dbb8" + integrity sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +websocket@^1.0.34: + version "1.0.35" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.35.tgz#374197207d7d4cc4c36cbf8a1bb886ee52a07885" + integrity sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q== + dependencies: + bufferutil "^4.0.1" + debug "^2.2.0" + es5-ext "^0.10.63" + typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" + yaeti "^0.0.6" + +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-builtin-type@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.4.tgz#592796260602fc3514a1b5ee7fa29319b72380c3" + integrity sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w== + dependencies: + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.2" + which-typed-array "^1.1.15" + +which-collection@^1.0.1, which-collection@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" + integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== + dependencies: + isexe "^3.1.1" + +wide-align@1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +wmf@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wmf/-/wmf-1.0.2.tgz#7d19d621071a08c2bdc6b7e688a9c435298cc2da" + integrity sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw== + +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +word@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/word/-/word-0.3.0.tgz#8542157e4f8e849f4a363a288992d47612db9961" + integrity sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA== + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +workbox-background-sync@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.6.1.tgz#08d603a33717ce663e718c30cc336f74909aff2f" + integrity sha512-trJd3ovpWCvzu4sW0E8rV3FUyIcC0W8G+AZ+VcqzzA890AsWZlUGOTSxIMmIHVusUw/FDq1HFWfy/kC/WTRqSg== + dependencies: + idb "^7.0.1" + workbox-core "6.6.1" + +workbox-broadcast-update@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.6.1.tgz#0fad9454cf8e4ace0c293e5617c64c75d8a8c61e" + integrity sha512-fBhffRdaANdeQ1V8s692R9l/gzvjjRtydBOvR6WCSB0BNE2BacA29Z4r9/RHd9KaXCPl6JTdI9q0bR25YKP8TQ== + dependencies: + workbox-core "6.6.1" + +workbox-build@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.6.1.tgz#6010e9ce550910156761448f2dbea8cfcf759cb0" + integrity sha512-INPgDx6aRycAugUixbKgiEQBWD0MPZqU5r0jyr24CehvNuLPSXp/wGOpdRJmts656lNiXwqV7dC2nzyrzWEDnw== + dependencies: + "@apideck/better-ajv-errors" "^0.3.1" + "@babel/core" "^7.11.1" + "@babel/preset-env" "^7.11.0" + "@babel/runtime" "^7.11.2" + "@rollup/plugin-babel" "^5.2.0" + "@rollup/plugin-node-resolve" "^11.2.1" + "@rollup/plugin-replace" "^2.4.1" + "@surma/rollup-plugin-off-main-thread" "^2.2.3" + ajv "^8.6.0" + common-tags "^1.8.0" + fast-json-stable-stringify "^2.1.0" + fs-extra "^9.0.1" + glob "^7.1.6" + lodash "^4.17.20" + pretty-bytes "^5.3.0" + rollup "^2.43.1" + rollup-plugin-terser "^7.0.0" + source-map "^0.8.0-beta.0" + stringify-object "^3.3.0" + strip-comments "^2.0.1" + tempy "^0.6.0" + upath "^1.2.0" + workbox-background-sync "6.6.1" + workbox-broadcast-update "6.6.1" + workbox-cacheable-response "6.6.1" + workbox-core "6.6.1" + workbox-expiration "6.6.1" + workbox-google-analytics "6.6.1" + workbox-navigation-preload "6.6.1" + workbox-precaching "6.6.1" + workbox-range-requests "6.6.1" + workbox-recipes "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + workbox-streams "6.6.1" + workbox-sw "6.6.1" + workbox-window "6.6.1" + +workbox-cacheable-response@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.6.1.tgz#284c2b86be3f4fd191970ace8c8e99797bcf58e9" + integrity sha512-85LY4veT2CnTCDxaVG7ft3NKaFbH6i4urZXgLiU4AiwvKqS2ChL6/eILiGRYXfZ6gAwDnh5RkuDbr/GMS4KSag== + dependencies: + workbox-core "6.6.1" + +workbox-core@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.6.1.tgz#7184776d4134c5ed2f086878c882728fc9084265" + integrity sha512-ZrGBXjjaJLqzVothoE12qTbVnOAjFrHDXpZe7coCb6q65qI/59rDLwuFMO4PcZ7jcbxY+0+NhUVztzR/CbjEFw== + +workbox-expiration@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.6.1.tgz#a841fa36676104426dbfb9da1ef6a630b4f93739" + integrity sha512-qFiNeeINndiOxaCrd2DeL1Xh1RFug3JonzjxUHc5WkvkD2u5abY3gZL1xSUNt3vZKsFFGGORItSjVTVnWAZO4A== + dependencies: + idb "^7.0.1" + workbox-core "6.6.1" + +workbox-google-analytics@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.6.1.tgz#a07a6655ab33d89d1b0b0a935ffa5dea88618c5d" + integrity sha512-1TjSvbFSLmkpqLcBsF7FuGqqeDsf+uAXO/pjiINQKg3b1GN0nBngnxLcXDYo1n/XxK4N7RaRrpRlkwjY/3ocuA== + dependencies: + workbox-background-sync "6.6.1" + workbox-core "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + +workbox-navigation-preload@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.6.1.tgz#61a34fe125558dd88cf09237f11bd966504ea059" + integrity sha512-DQCZowCecO+wRoIxJI2V6bXWK6/53ff+hEXLGlQL4Rp9ZaPDLrgV/32nxwWIP7QpWDkVEtllTAK5h6cnhxNxDA== + dependencies: + workbox-core "6.6.1" + +workbox-precaching@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.6.1.tgz#dedeeba10a2d163d990bf99f1c2066ac0d1a19e2" + integrity sha512-K4znSJ7IKxCnCYEdhNkMr7X1kNh8cz+mFgx9v5jFdz1MfI84pq8C2zG+oAoeE5kFrUf7YkT5x4uLWBNg0DVZ5A== + dependencies: + workbox-core "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + +workbox-range-requests@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.6.1.tgz#ddaf7e73af11d362fbb2f136a9063a4c7f507a39" + integrity sha512-4BDzk28govqzg2ZpX0IFkthdRmCKgAKreontYRC5YsAPB2jDtPNxqx3WtTXgHw1NZalXpcH/E4LqUa9+2xbv1g== + dependencies: + workbox-core "6.6.1" + +workbox-recipes@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.6.1.tgz#ea70d2b2b0b0bce8de0a9d94f274d4a688e69fae" + integrity sha512-/oy8vCSzromXokDA+X+VgpeZJvtuf8SkQ8KL0xmRivMgJZrjwM3c2tpKTJn6PZA6TsbxGs3Sc7KwMoZVamcV2g== + dependencies: + workbox-cacheable-response "6.6.1" + workbox-core "6.6.1" + workbox-expiration "6.6.1" + workbox-precaching "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + +workbox-routing@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.6.1.tgz#cba9a1c7e0d1ea11e24b6f8c518840efdc94f581" + integrity sha512-j4ohlQvfpVdoR8vDYxTY9rA9VvxTHogkIDwGdJ+rb2VRZQ5vt1CWwUUZBeD/WGFAni12jD1HlMXvJ8JS7aBWTg== + dependencies: + workbox-core "6.6.1" + +workbox-strategies@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.6.1.tgz#38d0f0fbdddba97bd92e0c6418d0b1a2ccd5b8bf" + integrity sha512-WQLXkRnsk4L81fVPkkgon1rZNxnpdO5LsO+ws7tYBC6QQQFJVI6v98klrJEjFtZwzw/mB/HT5yVp7CcX0O+mrw== + dependencies: + workbox-core "6.6.1" + +workbox-streams@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.6.1.tgz#b2f7ba7b315c27a6e3a96a476593f99c5d227d26" + integrity sha512-maKG65FUq9e4BLotSKWSTzeF0sgctQdYyTMq529piEN24Dlu9b6WhrAfRpHdCncRS89Zi2QVpW5V33NX8PgH3Q== + dependencies: + workbox-core "6.6.1" + workbox-routing "6.6.1" + +workbox-sw@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.6.1.tgz#d4c4ca3125088e8b9fd7a748ed537fa0247bd72c" + integrity sha512-R7whwjvU2abHH/lR6kQTTXLHDFU2izht9kJOvBRYK65FbwutT4VvnUAJIgHvfWZ/fokrOPhfoWYoPCMpSgUKHQ== + +workbox-webpack-plugin@^6.5.4: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.1.tgz#4f81cc1ad4e5d2cd7477a86ba83c84ee2d187531" + integrity sha512-zpZ+ExFj9NmiI66cFEApyjk7hGsfJ1YMOaLXGXBoZf0v7Iu6hL0ZBe+83mnDq3YYWAfA3fnyFejritjOHkFcrA== + dependencies: + fast-json-stable-stringify "^2.1.0" + pretty-bytes "^5.4.1" + upath "^1.2.0" + webpack-sources "^1.4.3" + workbox-build "6.6.1" + +workbox-window@6.6.1, workbox-window@^6.5.4: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.6.1.tgz#f22a394cbac36240d0dadcbdebc35f711bb7b89e" + integrity sha512-wil4nwOY58nTdCvif/KEZjQ2NP8uk3gGeRNy2jPBbzypU4BT4D9L8xiwbmDBpZlSgJd2xsT9FvSNU0gsxV51JQ== + dependencies: + "@types/trusted-types" "^2.0.2" + workbox-core "6.6.1" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@5.0.1, write-file-atomic@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^4.0.1" + +write-file-atomic@^2.4.2: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-json-file@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" + integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ== + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.15" + make-dir "^2.1.0" + pify "^4.0.1" + sort-keys "^2.0.0" + write-file-atomic "^2.4.2" + +write-pkg@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-4.0.0.tgz#675cc04ef6c11faacbbc7771b24c0abbf2a20039" + integrity sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA== + dependencies: + sort-keys "^2.0.0" + type-fest "^0.4.1" + write-json-file "^3.2.0" + +ws@8.17.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + +ws@^8.12.0, ws@^8.14.2, ws@^8.15.1, ws@^8.17.1, ws@^8.8.1: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + +xlsx@^0.18.5: + version "0.18.5" + resolved "https://registry.yarnpkg.com/xlsx/-/xlsx-0.18.5.tgz#16711b9113c848076b8a177022799ad356eba7d0" + integrity sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ== + dependencies: + adler-32 "~1.3.0" + cfb "~1.2.1" + codepage "~1.15.0" + crc-32 "~1.2.1" + ssf "~0.11.2" + wmf "~1.0.1" + word "~0.3.0" + +xss@^1.0.8: + version "1.0.15" + resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.15.tgz#96a0e13886f0661063028b410ed1b18670f4e59a" + integrity sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg== + dependencies: + commander "^2.20.3" + cssfilter "0.0.10" + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +xxhash-wasm@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz#ecc0f813219b727af4d5f3958ca6becee2f2f1ff" + integrity sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A== + +xxhashjs@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" + integrity sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw== + dependencies: + cuint "^0.2.2" + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml-ast-parser@^0.0.43: + version "0.0.43" + resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" + integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yaml@^2.3.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" + integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== + +yargs-parser@21.1.1, yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^20.2.2, yargs-parser@^20.2.3: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@17.7.2, yargs@^17.0.0, yargs@^17.6.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yargs@^15.3.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^16.0.0, yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yoga-wasm-web@0.3.3, yoga-wasm-web@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/yoga-wasm-web/-/yoga-wasm-web-0.3.3.tgz#eb8e9fcb18e5e651994732f19a220cb885d932ba" + integrity sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA== + +yup@^0.32.11: + version "0.32.11" + resolved "https://registry.yarnpkg.com/yup/-/yup-0.32.11.tgz#d67fb83eefa4698607982e63f7ca4c5ed3cf18c5" + integrity sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg== + dependencies: + "@babel/runtime" "^7.15.4" + "@types/lodash" "^4.14.175" + lodash "^4.17.21" + lodash-es "^4.17.21" + nanoclone "^0.2.1" + property-expr "^2.0.4" + toposort "^2.0.2" + +zen-observable-ts@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58" + integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== + dependencies: + zen-observable "0.8.15" + +zen-observable@0.8.15: + version "0.8.15" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== + +zod@^3.22.4: + version "3.23.8" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== + +zustand@^4.5.2: + version "4.5.5" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.5.5.tgz#f8c713041543715ec81a2adda0610e1dc82d4ad1" + integrity sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q== + dependencies: + use-sync-external-store "1.2.2"